AndrewPokora
@AndrewPokora
Database developer

Как правильно сделать запрос отправки файлов на AWS S3 через API?

Я пытаюсь отправить файл на AWS S3, используя их API. При отладке в Postman при отправке POST получаю ошибку:
<Error>
<Code>InvalidArgument</Code>
<Message>x-amz-content-sha256 must be UNSIGNED-PAYLOAD, STREAMING-AWS4-HMAC-SHA256-PAYLOAD, or a valid sha256 value.</Message>
<ArgumentName>x-amz-content-sha256</ArgumentName>
<ArgumentValue>null</ArgumentValue>
<RequestId>3894669690788E8C</RequestId>
<HostId>M5+iksOkbQZM4lzqz3nuPwEMSpIrVP+YAEKCpY6lB8TvzaDPQB4JSk7VlO93ZLBs6uT11dJpS34=</HostId>


Единственный совет, который я смог нагуглить, гласит:


For POST requests, x-amz-content-sha256 goes in the form, not the headers.


Однако, в таком случае в ответе я получаю:
Missing required header for this request: x-amz-content-sha256


К сожалению, в документации AWS S3 этот момент не описывается. Кроме того, у меня нет возможности использовать SDK от Amazon.

Что делать?..
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
В документации описывается и POST и PUT. Первый нужен для загрузки файлов прямо из браузера через форму – точно ли это ваш случай?

Для аутентификации запросов есть два варианта: через заголовки или через параметры запроса. Для POST это параметры, для PUT – заголовки. Далее по ссылкам объясняют, как вычислять подпись. Упомянутого вами параметра там вроде, не видно.

Уточните всё же, хотите ли вы загружать файлы через форму браузера или через PUT запрос?
Ответ написан
inoise
@inoise
Solution Architect
А с чего вы решили что у вас получится это сделать через postman? там довольно кучерявое api, я даже не рисковал. У них же есть CLI и SDK - вам их мало?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы