如何在没有 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 已经很好地描述了 固定格式:
它们取决于您是否要使用虚拟样式、路径样式、网站端点。它们还取决于地区。这些是设计 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>"]
}
}
我需要使用 Lambda 函数 (Python),我需要获取 S3 路径。它应该是这样的:
s3://some-path-to-the-location-of-generated-text/generated-text.txt
URL 客户端需要在没有 AWS 密钥的情况下在浏览器中查看,因为我不需要预签名的 url。
非常感谢!
S3 服务和网站 url/paths 已经很好地描述了 固定格式:
它们取决于您是否要使用虚拟样式、路径样式、网站端点。它们还取决于地区。这些是设计 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>"]
}
}