example aws python amazon-web-services amazon-s3 boto3

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

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAILys

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'')