【问题标题】:How to retrieve AWS S3 objects URL using python如何使用 python 检索 AWS S3 对象 URL
【发布时间】: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})
}

【问题讨论】:

    标签: python


    【解决方案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
    猜你喜欢
    • 2021-03-06
    • 2017-10-24
    • 2016-07-24
    • 2018-07-14
    • 2021-02-18
    • 2020-07-30
    • 1970-01-01
    • 2020-01-18
    • 2020-01-19
    相关资源
    最近更新 更多