如何使用 python 检索 AWS S3 对象 URL
Posted
技术标签:
【中文标题】如何使用 python 检索 AWS S3 对象 URL【英文标题】:How to retrieve AWS S3 objects URL using python 【发布时间】:2022-01-23 19:57:08 【问题描述】:我需要编写一个 lambda 函数来检索 s3 对象 URL 以进行对象预览。我遇到了这个解决方案,但我对此有疑问。就我而言,我想检索我的 s3 存储桶中任何对象的 URL,因此没有 Keyname。如何检索存储在我的 s3 存储桶中的任何未来对象的 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)
【问题讨论】:
【参考方案1】:你有一些例子here。但是,你到底想做什么?你说的未来对象是什么意思?您可以在您的存储桶上放置一个creation event,每次将新对象上传到该存储桶时都会触发您的 lambda。
import boto3
def lambda_handler(event, context):
print(event)
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
s3 = boto3.client('s3')
obj = s3.get_object(
Bucket=bucket,
Key=key
)
print(obj['Body'].read().decode('utf-8'))
【讨论】:
我希望能够检索 s3 对象 url 以进行对象预览,但我没有 KEYNAME以上是关于如何使用 python 检索 AWS S3 对象 URL的主要内容,如果未能解决你的问题,请参考以下文章