【问题标题】:How can I provide directory listings for those viewing my Amazon S3 based static website?如何为查看基于 Amazon S3 的静态网站的用户提供目录列表?
【发布时间】:2011-08-19 08:14:43
【问题描述】:

我有一个 Amazon S3 帐户,我想在其中存储多个文件目录。

我希望该网站的访问者能够查看和下载我放置在那里的文件和文件夹。

这些文件和文件夹会定期更改,我不希望每次添加或删除文件时都重写任何 html。

如何安排我网站的查看者看到一个简单的文件/文件夹列表?

【问题讨论】:

    标签: file amazon-s3 amazon listings


    【解决方案1】:

    您可以使用 Javascript 列出文件。

    这是亚马逊提供的解决方案:

    http://aws.amazon.com/code/Amazon-S3/1713

    您将 list.html 放在要列出的每个目录中。

    我已经制作了自己的列表文件,它提供了一个可折叠的树视图:

    https://github.com/phatmann/jS3Tree/blob/master/index.html

    如果您使用的是 S3 网站功能,这些文件都不起作用。

    【讨论】:

    • 似乎不起作用。 both.get 空白页面,尽管所有文件都是公开的并且没有作为网站存储桶运行。
    • @devdude,你能打开 Javascript 调试看看脚本是否在任何地方失败了吗?
    • Firebug:响应为空 handleList()list.html(第 104 行)[中断此错误] filex = response.getElementsByTagName('Contents');
    • 对我也没有用,Rufus Pollock 的解决方案效果很好
    【解决方案2】:

    我创建了一个简单的 JS,它创建了一个 HTML 样式的目录索引,可以满足您的需求:https://github.com/rgrp/s3-bucket-listing

    您可以将它直接安装到您的 s3 存储桶或单独的网站中(感谢 S3 REST API 支持 CORS!)。自述文件对此有完整说明:https://github.com/rgrp/s3-bucket-listing

    【讨论】:

      【解决方案3】:

      您应该使用Amazon S3 API 列出其中的存储桶和文件
      一个桶可以代表一个文件夹(比在文件名上使用前缀更容易)

      在创建您的存储桶并将文件上传到它们之后
      您可以通过List All My Buckets 请求在页面上显示存储桶
      一旦用户单击给定的存储桶,您就可以使用List Bucket 请求
      最后一次单击文件以生成对象的 url,以便用户可以在不浪费带宽的情况下下载它

      您可以找到许多亚马逊 s3 api here 的实现

      【讨论】:

      • 这些 API 可以从 Javascript 调用吗?有样品吗?否则我不确定如何在浏览器中使用它们。我希望能在 S3 空间内提供一些服务。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2014-08-11
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多