Saltar al contenido

¿Cómo especificar las credenciales al conectarse a boto3 S3?

Solución:

Puedes crear una sesión:

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 de S3:

s3 = session.resource('s3')

Puedes conseguir un client con 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
                      )

Esto es más antiguo, pero también lo coloco aquí para mi referencia. boto3.resource está implementando la sesión predeterminada, puede pasar a través de los detalles de la sesión boto3.resource.

Help on function resource in module boto3:

resource(*args, **kwargs)
    Create a resource service client by name using the default session.

    See :py:meth:`boto3.session.Session.resource`.

https://github.com/boto/boto3/blob/86392b5ca26da57ce6a776365a52d3cab8487d60/boto3/session.py#L265

puede ver que solo toma los mismos argumentos que Boto3.

import boto3
S3 = boto3.resource('s3', region_name="us-west-2", aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY)
S3.Object( bucket_name, key_name ).delete()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *