S3静态网站中的目录列表

iJe*_*eep 39 amazon-s3 amazon-web-services

我已经设置了一个S3存储桶来托管静态文件.

使用网站端点(http://.s3-website-us-east-1.amazonaws.com/)时:它强制我设置索引文件.找不到该文件时,它会抛出错误而不是列出目录内容.

使用s3端点(.s3.amazonaws.com)时:我得到了文件的XML列表,但我需要一个HTML列表,用户可以单击该文件的链接.

我已经尝试将所有文​​件和存储桶本身的权限设置为AWS控制台中"Everyone"的"List",但仍然没有运气.

我也尝试了一些javascript替代方案,但它们要么不在网站url下工作(重定向到索引文件),要么根本不工作.作为最后的手段,可折叠的JavaScript列表总比没有好,但我找不到好的.

这可能吗?如果是,我是否需要更改权限,ACL或其他内容?

Ruf*_*ock 34

我创建了一个简单的JS来创建一个HTML风格的目录索引,你正在寻找:https://github.com/rgrp/s3-bucket-listing

README具有处理Amazon S3"网站"存储桶的具体说明:https://github.com/rgrp/s3-bucket-listing#website-buckets

您可以在此s3存储桶中看到该脚本的实时示例(在网站模式下):http://data.openspending.org/


Cél*_*urd 8

还有这个解决方案:https://github.com/caussourd/aws-s3-bucket-listing

https://github.com/rgrp/s3-bucket-listing类似,但我无法使用Internet Explorer.所以https://github.com/caussourd/aws-s3-bucket-listing与IE一起工作,并且还增加了按名称,大小和日期订购文件的可能性.在缺点方面,它不跟随文件夹:仅显示一个级别的文件.


Ton*_*ony 5

这可能会解决您的问题。每个人组的安全设置:(您需要为此使用bucketexplorer.com软件)

如果要共享HTTP文件,则可能希望或不希望人们能够列出存储桶(文件夹)的内容。如果希望在有人输入存储桶名称时列出存储桶内容(http:// s3 .amazonaws.com / bucket_name /),然后编辑访问控制列表,并为“所有人”组授予“读取”访问权限(并同样对存储桶的内容进行操作。)如果您不希望存储桶内容可列出,但确实要共享其中的文件,请对存储桶本身的Everyone组禁用读取访问权限,然后对存储桶中的各个文件启用读取访问权限。


iJe*_*eep 5

我找到了s3browser,这使我可以在主网站上设置一个目录,该目录允许浏览s3存储桶。它工作得很好,并且设置起来非常容易。


Pra*_*hat 5

我创建了一个更简单的解决方案。只需将 index.html 文件放在文件夹的根目录中,它就会完成这项工作。无需配置。https://github.com/prabhatsharma/s3-directorylisting