Заранее заданный URL-адрес S3 не работает при создании с помощью лямбда-функции ⇐ Python
Заранее заданный URL-адрес S3 не работает при создании с помощью лямбда-функции
Следующий код, полученный из примера Boto3 S3, работает правильно как при локальном запуске, так и при использовании лямбда-функции, выполняемой с вызовом API-шлюза:
s3_client = boto3.client('s3') ответ = s3_client.generate_presigned_post("mybucket", "мойфайл.jpg" Срок действия = 3600) В обоих случаях он возвращает ответ, подобный следующему:
{ "url": "https://mybucket.s3.amazonaws.com/", "поля": { "key": "myfile.jpg", "AWSAccessKeyId": "-omissis-", "policy": "eyJle...dfQ==", "подпись": "ruboM...P3R4c=" } } Единственная разница между ними заключается в том, что удаленный (сгенерированный лямбда-функцией) также включает поле x-amz-security-token.
... "x-amz-security-token": "IQoJb...ZAQ==", ... Когда я пытаюсь отправить файл POST (используя пример HTML, указанный на странице, указанной выше, или почтальон), все работает правильно, когда я использую заранее заданный URL-адрес, сгенерированный локально (без x-amz-security-token), но он терпит неудачу, когда я пытаюсь сгенерировать его удаленно.
Он возвращает следующее сообщение об ошибке, когда x-amz-security-token отправляется в качестве поля формы:
403 Запрещено InvalidAccessKeyId Предоставленный вами идентификатор ключа доступа AWS не существует в наших записях. -omissis- 360...BE2 y04bl...DWhqY= и следующее поле заголовка:
403 Запрещено Доступ запрещен Ключ AWSAccessKey не был представлен. A7592...6681 stc/+...eeUU= Как правильно выполнить запрос POST, если заранее назначенный URL-адрес включает x-amz-security-token?
Следующий код, полученный из примера Boto3 S3, работает правильно как при локальном запуске, так и при использовании лямбда-функции, выполняемой с вызовом API-шлюза:
s3_client = boto3.client('s3') ответ = s3_client.generate_presigned_post("mybucket", "мойфайл.jpg" Срок действия = 3600) В обоих случаях он возвращает ответ, подобный следующему:
{ "url": "https://mybucket.s3.amazonaws.com/", "поля": { "key": "myfile.jpg", "AWSAccessKeyId": "-omissis-", "policy": "eyJle...dfQ==", "подпись": "ruboM...P3R4c=" } } Единственная разница между ними заключается в том, что удаленный (сгенерированный лямбда-функцией) также включает поле x-amz-security-token.
... "x-amz-security-token": "IQoJb...ZAQ==", ... Когда я пытаюсь отправить файл POST (используя пример HTML, указанный на странице, указанной выше, или почтальон), все работает правильно, когда я использую заранее заданный URL-адрес, сгенерированный локально (без x-amz-security-token), но он терпит неудачу, когда я пытаюсь сгенерировать его удаленно.
Он возвращает следующее сообщение об ошибке, когда x-amz-security-token отправляется в качестве поля формы:
403 Запрещено InvalidAccessKeyId Предоставленный вами идентификатор ключа доступа AWS не существует в наших записях. -omissis- 360...BE2 y04bl...DWhqY= и следующее поле заголовка:
403 Запрещено Доступ запрещен Ключ AWSAccessKey не был представлен. A7592...6681 stc/+...eeUU= Как правильно выполнить запрос POST, если заранее назначенный URL-адрес включает x-amz-security-token?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение