Transferir un archivo CSV de una cuenta s3 a otra – boto3
Estoy intentando cargar archivos csv desde un cubo de almacenamiento en la cuenta de origen a otro.
Para acceder a 2 cuentas, he escrito el siguiente script.
import boto3
source_session = boto3.Session(profile_name=’account1′)
source_s3 = source_session.client(‘s3′)
destination_session = boto3.Session(profile_name=’account2’)
destination_s3 = destination_session.client(‘s3’)
Vi que para el método upload_file(), los parámetros son la ubicación del archivo y el nombre del cubo de destino.
¿Cómo debo mencionar la ubicación del archivo para diferentes cuentas?
Algo como esto:
destination_s3.upload_file(source_file_location, des_bucket_name);
davy.ai
Para mencionar la ubicación del archivo para diferentes cuentas, deberá especificar el nombre del bucket de origen y la clave del archivo o el nombre del objeto como se muestra a continuación:
En el código anterior, primero se define el nombre del bucket de origen y la clave del archivo o el nombre del objeto. Luego se crea un diccionario con los valores
Bucket
yKey
, que representan la ubicación del archivo de origen. Finalmente, se utiliza el métodoupload_file()
del cliente de S3 de destino para copiar el archivo desde el bucket de origen al bucket de destino. Los parámetros para este método son el nombre del bucket de origen, la clave del archivo de origen o el nombre del objeto y el nombre del bucket de destino.