【问题标题】:How to get AWS S3 object Location/URL using python 3.8?如何使用 python 3.8 获取 AWS S3 对象位置/URL?
【发布时间】:2021-03-06 21:22:13
【问题描述】:

我正在使用带有以下代码的 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 做到这一点吗?

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    S3 对象的 url 具有已知格式并遵循Virtual hosted style access:

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

    【讨论】:

    • 它正在返回null
    • 这是我的问题。现在工作正常。感谢您的帮助。
    猜你喜欢
    • 2017-10-24
    • 2018-07-14
    • 2020-01-18
    • 2022-01-23
    • 2020-07-30
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多