如何使用python 3.8获取AWS S3对象的位置/URL



我正在使用以下代码使用AWS Lambda函数(Python3.8(将文件上传到AWS S3。

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

我想获得return中S3对象的位置/url。在Node.js中,我们使用.location参数来获取对象位置/url。

知道如何使用python 3.8实现这一点吗?

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

最新更新