Comment obtenir l'emplacement / l'URL de l'objet AWS S3 à l'aide de pyhton 3.8?
Nov 23 2020
Je télécharge un fichier sur AWS S3 à l'aide de la fonction AWS Lambda (Python3.8) avec le code suivant.
file_obj = open(filename, 'rb')
s3_upload = s3.put_object( Bucket="aaa", Key="aaa.png", Body=file_obj)
return {
'statusCode': 200,
'body': json.dumps("Executed Successfully")
}
Je veux obtenir l'emplacement / l'url de l'objet S3 dans return
. Dans Node.js
nous utilisons le .location
paramètre pour obtenir l'emplacement / l'url de l'objet.
Une idée comment faire cela en utilisant python 3.8?
Réponses
2 Marcin Nov 24 2020 at 05:40
L'url des objets S3 a un format connu et suit un accès de style hébergé virtuel :
https://bucket-name.s3.Region.amazonaws.com/keyname
Ainsi, vous pouvez construire vous-même l'url:
bucket_name = 'aaa'
aws_region = boto3.session.Session().region_name
object_key = 'aaa.png'
s3_url = f"https://{bucket_name}.s3.{aws_region}.amazonaws.com/{object_key}"
return {
'statusCode': 200,
'body': json.dumps({'s3_url': s3_url})
}