如何使用python检索AWS S3对象的URL



我需要编写一个lambda函数来检索s3对象URL以进行对象预览。我遇到了这个解决方案,但我有一个问题。在我的情况下,我想检索我的s3 bucket中任何对象的URL,因此没有Keyname。我如何检索存储在我的s3 bucket中的任何未来对象的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})
}

这里有一些例子。但是,你到底想做什么?你所说的未来物体是什么意思?您可以在您的bucket上放置一个创建事件,每次将新对象上载到该bucket时,该事件都会触发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'))

最新更新