pyhton3.8を使用してAWSS3オブジェクトの場所/ URLを取得するにはどうすればよいですか?

Nov 23 2020

次のコードでAWSLambda関数(Python3.8)を使用してAWSS3にファイルをアップロードしています。

   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")
   }

でS3オブジェクトの場所/ URLを取得したいreturn。では、オブジェクトの場所/ URLを取得Node.jsするための.locationパラメータを使用します。

Python 3.8を使用してこれを行う方法はありますか?

回答

2 Marcin Nov 24 2020 at 05:40

S3オブジェクトのURLは既知の形式であり、仮想ホストスタイルのアクセスに従います。

https://bucket-name.s3.Region.amazonaws.com/keyname

したがって、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})
}