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 содержать только необработанные байты объекта. Это не является причиной ошибки, но как только вы исправите ошибку подписи, вам также придется ее изменить, чтобы получить действительную и полезную загрузку.

Другие вопросы по тегам