我目前对我的 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(使用前将#替换为@)