Je dois télécharger un fichier de mon S3 bucket
sur mon serveur pour un certain traitement. Le godet ne supporte pas les connexions directes et doit utiliser un Pre-Signed URL
.
Les Boto3 Docs
Parlez de l'utilisation d'une URL préignée pour télécharger, mais ne mentionne pas la même chose pour le téléchargement.
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)
Pour un autre exemple, voir: RL présigné - Documentation Boto
Vous pouvez également générer une URL pré-signée à l'aide de l'AWS CLI:
aws s3 presign s3://my-bucket/foo.jpg --expires-in 300