Jak uzyskać lokalizację / adres URL obiektu AWS S3 za pomocą pyhton 3.8?
Nov 23 2020
Przesyłam plik do AWS S3 za pomocą funkcji AWS Lambda (Python3.8) z następującym kodem.
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")
}
Chcę uzyskać lokalizację / adres URL obiektu S3 w return
. W Node.js
używamy .location
parametru do pobrania lokalizacji / adresu URL obiektu.
Każdy pomysł, jak to zrobić za pomocą Pythona 3.8?
Odpowiedzi
2 Marcin Nov 24 2020 at 05:40
Adres URL obiektów S3 ma znany format i jest zgodny z dostępem w stylu wirtualnym :
https://bucket-name.s3.Region.amazonaws.com/keyname
W ten sposób możesz samodzielnie utworzyć adres 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})
}