Tengo que descargar un archivo de mi S3 bucket a mi servidor para procesarlo. El depósito no admite conexiones directas y debe usar una Pre-Signed URL .
Los documentos de Boto3 Docs hablan sobre el uso de una URL preestablecida para cargar, pero no mencionan lo mismo para la descarga.
import boto3 s3_client = boto3.client('s3') BUCKET = 'my-bucket' OBJECT = 'foo.jpg' url = s3_client.generate_presigned_url( 'get_object', Params={'Bucket': BUCKET, 'Key': OBJECT}, ExpiresIn=300) print(url)Para ver otro ejemplo, consulte: URL prefirmadas: documentación de Boto 3
También puede generar una URL prefirmada mediante la CLI de AWS:
aws s3 presign s3://my-bucket/foo.jpg --expires-in 300