【问题标题】:How to get the URL of a file on AWS S3, return path without AWS Key如何在 AWS S3 上获取文件的 URL,返回没有 AWS 密钥的路径
【发布时间】:2020-05-22 23:37:48
【问题描述】:

我需要使用 Lambda 函数 (Python),我需要获取 S3 路径。它应该是这样的:

s3://some-path-to-the-location-of-generated-text/generated-text.txt

该 URL 客户端需要在浏览器中查看,无需 AWS 密钥,因为我不需要预签名的 url。

非常感谢!

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda returnurl


    【解决方案1】:

    您需要使用 AWS S3 存储桶策略,该策略应该允许读取给定文件的所有内容。

    您的存储桶策略应如下所示:

     {
    
      "Statement":[
        {
          "Sid":"PublicRead",
          "Effect":"Allow",
          "Principal": "*",
          "Action":["s3:GetObject"],
          "Resource":["arn:aws:s3:::<name of bucket>/<file that you want everyone can read>"]
        }
    }
    

    示例 - https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2

    【讨论】:

      【解决方案2】:

      S3 服务和网站 url/路径已经很好地描述了固定格式

      Working with Amazon S3 Buckets

      它们取决于您是否要使用虚拟样式、路径样式、网站端点。它们还取决于地区。这些是设计 lambda 函数时要考虑的事项。

      因此,如果您知道存储桶和对象名称,则可以在函数中以编程方式构造它们。但除非对象是公开的,否则没有 AWS 凭证,任何人都无法下载它们。

      【讨论】:

        猜你喜欢
        • 2017-11-08
        • 2017-12-27
        • 2022-10-14
        • 2017-05-05
        • 2013-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多