S3 允许父文件夹的公共目录列表吗?

2024-03-09

我目前对我的 S3 存储桶之一拥有公共权限,如下所示:

{
    "Version": "2012-10-17",
    "Id": "Policy1493660686651",
    "Statement": [
        {
            "Sid": "Stmt1493660682556",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::polodata/*"
        }
    ]
}

当用户导航到特定文件时,例如:https://s3-us-west-2.amazonaws.com/polodata/ETHBTC.csv,它会提示用户下载——这很好。然而,当他们导航到:https://s3-us-west-2.amazonaws.com/polodata/(没有指定文件),它返回一个 XML 页面。

我需要更改什么才能后者返回目录列表页面?


你不会得到目录列表页面访问 URL 时脱离 Amazon S3。最接近的是对象的 XML 列表,您必须为其授予ListObjects存储桶策略的权限。它看起来像这样:

该 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>my-bucket</Name>
  <Prefix/>
  <Marker/>
  <MaxKeys>1000</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>foo.txt</Key>
    <LastModified>2017-05-01T21:07:13.000Z</LastModified>
    <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag>
    <Size>213</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>my-folder/</Key>
    <LastModified>2017-05-01T21:07:18.000Z</LastModified>
    <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
    <Size>0</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>my-folder/bar.txt</Key>
    <LastModified>2017-05-01T21:07:30.000Z</LastModified>
    <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag>
    <Size>213</Size>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

有些人想出了一些创造性的方法模拟目录列表,例如:S3 静态网站中的目录列表 https://stackoverflow.com/q/9253512/174777

请记住 - Amazon S3 不是传统的 Web 服务器。这是一个对象存储服务它还可以向互联网提供内容。因此,它的行为与普通 Web 服务器不完全相同。

也可以看看:如何配置 S3 存储桶用于静态网站托管? http://docs.aws.amazon.com/AmazonS3/latest/user-guide/static-website-hosting.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

S3 允许父文件夹的公共目录列表吗? 的相关文章

随机推荐