python - aws - boto3 s3 github
¿Cómo especificar credenciales cuando se conecta a boto3 S3? (3)
Existen numerosas formas de almacenar credenciales mientras se sigue usando boto3.resource (). Estoy usando el método AWS CLI yo mismo. Funciona perfectamente
En boto, solía especificar mis credenciales al conectarme a S3 de esta manera:
import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )
Entonces podría usar S3 para realizar mis operaciones (en mi caso, eliminar un objeto de un depósito).
Con boto3 todos los ejemplos que encontré son tales:
import boto3
S3 = boto3.resource( ''s3'' )
S3.Object( bucket_name, key_name ).delete()
No pude especificar mis credenciales y, por lo tanto, todos los intentos fallan con el error
InvalidAccessKeyId
.
¿Cómo puedo especificar credenciales con boto3?
Puede obtener un
client
con una nueva sesión directamente como a continuación.
s3_client = boto3.client(''s3'',
aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
region_name=REGION_NAME
)
Puedes crear una session :
import boto3
session = boto3.Session(
aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)
Luego use esa sesión para obtener un recurso S3:
s3 = session.resource(''s3'')