python - Como especificar credenciais ao conectar ao boto3 S3?




amazon-web-services amazon-s3 (2)

Existem várias maneiras de armazenar credenciais enquanto ainda estiver usando o 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_qAILys

No boto eu costumava especificar minhas credenciais ao conectar ao S3 de tal maneira:

import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )

Eu poderia usar o S3 para executar minhas operações (no meu caso, excluir um objeto de um bucket).

Com boto3 todos os exemplos que encontrei são tais:

import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()

Não foi possível especificar minhas credenciais e, portanto, todas as tentativas falharam com o erro InvalidAccessKeyId .

Como posso especificar credenciais com boto3?


Você pode criar uma session :

import boto3
session = boto3.Session(
    aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
    aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)

Em seguida, use essa sessão para obter um recurso S3:

s3 = session.resource('s3')






boto3