如何在没有 AWS Key 的情况下获取 AWS S3 上文件的 URL,return 路径

How to get the URL of a file on AWS S3, return path without AWS Key

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

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

URL 客户端需要在没有 AWS 密钥的情况下在浏览器中查看,因为我不需要预签名的 url。

非常感谢!

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

Working with Amazon S3 Buckets

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

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

您需要使用 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