Я хотел бы использовать boto3 для загрузки файла в AWS S3. Но у меня есть только временный доступ к S3, предоставленный веб-сервисом, который не находится под моим контролем. Мне предоставляется следующая учетная информация:
{
"key": <string>,
"x-amz-algorithm": <string>,
"x-amz-credential": <string>,
"x-amz-date": <string>,
"policy": <string>,
"x-amz-signature": <string>
}
Насколько я знаю, эту информацию можно использовать, например, для запроса POST. Но я не смог выяснить, как использовать эту информацию в сочетании с командой boto3
s3 = boto3.client('s3')
, которая обычно требует aws_access_key_id и aws_secret_access_key . Этот пост здесь предполагает, что это должно быть возможно:
Вместо того, чтобы подписывать URL-адреса (которые обычно используются при совершении вызовов через веб-браузер), вы должны генерировать временные учетные данные черезСлужба токенов безопасности AWS (STS)
[...]
Приложение Python будет использовать эти учетные данные при вызове boto
Но я не смог выяснить, как предоставить клиенту boto временные учетные данные.