Saltar al contenido

Descargar archivo de AWS S3 usando Python

Esta es la contestación más válida que te podemos aportar, sin embargo obsérvala detenidamente y valora si se puede adaptar a tu proyecto.

Solución:

No está utilizando la sesión que creó para descargar el archivo, está utilizando el cliente s3 que creó. Si desea utilizar el cliente, debe especificar las credenciales.

your_bucket.download_file('k.png', '/Users/username/Desktop/k.png')

o

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
s3.download_file('your_bucket','k.png','/Users/username/Desktop/k.png')

A partir de un ejemplo en la documentación oficial, el formato correcto es:

import boto3

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

También puede usar un objeto similar a un archivo abierto en modo binario.

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)

El código en cuestión utiliza s3 = boto3.client ('s3')que no proporciona ninguna credencial.

El formato para autenticar un cliente se muestra aquí:

import boto3
client = boto3.client(
    's3',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN,
)

# Or via the Session
session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN,
)

Y, por último, también puede reutilizar la sesión autenticada que creó para obtener el depósito y luego descargar el archivo del depósito.

from boto3.session import Session
import boto3

ACCESS_KEY = 'ABC'
SECRET_KEY = 'XYZ'

session = Session(aws_access_key_id=ACCESS_KEY,
              aws_secret_access_key=SECRET_KEY)

# session is authenticated and can access the resource in question 
session.resource('s3')
    .Bucket('bucket_name')
    .download_file('k.png','/Users/username/Desktop/k.png')

Comentarios y calificaciones

Si te animas, puedes dejar una sección acerca de qué le añadirías a esta división.

¡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 *