No boto eu costumava especificar minhas credenciais ao me conectar ao S3 da seguinte maneira:
import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )
Eu poderia então usar o S3 para realizar minhas operações (no meu caso, excluir um objeto de um balde).
Com boto3 todos os exemplos que encontrei são:
import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()
Não consegui especificar minhas credenciais e, portanto, todas as tentativas falharam com InvalidAccessKeyId
erro.
Como posso especificar credenciais com boto3?
python
amazon-web-services
amazon-s3
boto3
Robert Brax
fonte
fonte
Respostas:
Você pode criar uma sessão :
Em seguida, use essa sessão para obter um recurso S3:
fonte
Você pode obter uma
client
com nova sessão diretamente como abaixo.fonte
Isso é mais antigo, mas coloquei aqui para minha referência também. boto3.resource está apenas implementando a Sessão padrão, você pode passar pelos detalhes da sessão de boto3.resource.
https://github.com/boto/boto3/blob/86392b5ca26da57ce6a776365a52d3cab8487d60/boto3/session.py#L265
você pode ver que leva apenas os mesmos argumentos que Boto3.Session
fonte
Eu gostaria de expandir a resposta de @JustAGuy. O método que prefiro é usar
AWS CLI
para criar um arquivo de configuração. O motivo é que, com o arquivo de configuração, oCLI
ou oSDK
procurará automaticamente por credenciais na~/.aws
pasta. E o bom é queAWS CLI
está escrito em python.Você pode obter cli de pypi se ainda não o tiver feito. Aqui estão as etapas para configurar o CLI no terminal
Depois disso, você pode acessar
boto
e qualquer uma das APIs sem precisar especificar chaves (a menos que você queira usar uma credencial diferente).fonte
Existem várias maneiras de armazenar credenciais enquanto ainda usa boto3.resource (). Estou usando o método AWS CLI sozinho. Funciona perfeitamente.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAIL
fonte