Это было до недавнего времени, я не уверен, что изменилось. Я создаю presignedUrl, используя S3 SDK и загружая файл в ведро, используя его. Файл фактически загружается, и ответ возвращает statusCode 200, но странно нет тела ответа.
Я не понимаю, пропал ли я какой-то заголовок, или если они ошибаются. Content-length
заголовков ответов беспокоит меня.
Любая помощь приветствуется!
Примечание. Я скрыл значения, если они мне полезны, я могу их высмеять
генеральный
Request URL: https://some-bucket.s3.ap-southeast-2.amazonaws.com/some/path/file/picture?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAXXXap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=xxx&X-Amz-Expires=300&X-Amz-Security-Token=xxx&X-Amz-Signature=xxx&X-Amz-SignedHeaders=host%3Bx-amz-acl&x-amz-acl=public-read Request Method: PUT Status Code: 200 OK Remote Address: 1.2.3.4:443 Referrer Policy: no-referrer-when-downgrade
Запросить заголовки
Accept: application/json, text/plain, */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Cache-Control: no-cache Connection: keep-alive Content-Length: 31897 Content-Type: image/jpeg Host: some-bucket.s3.ap-southeast-2.amazonaws.com Origin: http://localhost:5000 Pragma: no-cache Referer: http://localhost:5000/some/page User-Agent: Mozilla/5.0 xxx
Заголовки ответов
Access-Control-Allow-Methods: GET, PUT, POST, HEAD Access-Control-Allow-Origin: * Content-Length: 0 Date: Thu, 1 May 2017 01:00:00 GMT ETag: "xxx" Server: AmazonS3 Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method x-amz-id-2: xxx x-amz-request-id: xxx
Параметры строки запроса
X-Amz-Algorithm: AWS4-HMAC-SHA256 X-Amz-Credential: ASIAXXXap-southeast-2/s3/aws4_request X-Amz-Date: XXX X-Amz-Expires: 300 X-Amz-Security-Token: XXX X-Amz-Signature: XXX X-Amz-SignedHeaders: host;x-amz-acl x-amz-acl: public-read
Присвоение услуги (NodeJS, Lambda)
...
const params = {
Bucket: 'some-bucket',
Key: 'some/path/file/picture',
Expires: 60 * 5,
ACL: 'public-read'
};
s3.getSignedUrl('putObject', params, (err, url) => {
...
callback(null, new Response(200, {url});
});
...
Сервис S3 (TS, угловой)
public putObject(presignedUrl: string, file: File): Observable<any> {
return this.http.put<any>(presignedUrl, file);
}
Составная часть
this.s3Service.putObject(presignedUrl, file)
.subscribe(
(response) => {
// it gets here as expected
// but response is null!
},
() => {}
);