S3 предварительно назначенный URL-адрес многоэлементной загрузки данных: ошибка: подпись не совпадает
Я получаю предварительно назначенный URL-адрес от aws и использую его для запроса (PUT) файла zip. Я получаю подпись не совпадает.
при получении заданного URL:
const params = {
Bucket: myBucket,
Key: myKey,
Expires: 60*60,
ACL: '**-**-**',
ContentType: 'application/x-zip-compressed'};
при запросе:
const formData = new FormData();
formData.append('file', file);
formData.append('filename', file.name);
fetch(url, {
method: 'PUT',
headers: {
'Content-Type': 'application/x-zip-compressed',
},
body: formData
})
1 ответ
Без разницы ACL
Значение, которое вы используете в подписи, также должно быть отправлено в заголовках запроса, так как 'x-amz-acl': '**-**-**'
,
Обратите внимание, что S3 PUT
не ожидает FormData
- это ожидает body
содержать только необработанные байты объекта. Это не является причиной ошибки, но как только вы исправите ошибку подписи, вам также придется ее изменить, чтобы получить действительную и полезную загрузку.