【发布时间】:2019-01-23 03:02:47
【问题描述】:
我在 Amazon S3 上托管一个静态网站。在我的 Bucket 中,还存储了一些 .txt 、 .pdf 、 .svg 文件。我想用 javascript 在我的 html 网站上显示这些文件的列表(仅命名没有内容)。由于用户可以将文件上传到存储桶,因此名称总是会改变。这就是我想列出它们的原因。而且我不想列出所有文件而不是显示 html 文件,而是显示带有表格的 html 文件,该表格列出了存储桶中特定文件夹中的文件。
我不使用 nodejs,只是 js 用于浏览器。我尽量不使用任何新模块。项目应该保持简单。
我已经阅读了有关在 browserify 的帮助下在浏览器中使用诸如“fs”之类的 nodejs 模块的教程。我没有管理那个或我发现的任何其他想法。
我阅读了一些关于 FileSystemDirectoryReader for js 的内容,但目前还没有得到普遍支持。 WebKitFileSystem 会满足我的需求吗?我知道大多数文件系统 API 都使用 virtuall 目录而不是我需要的目录。
现在我想知道我是否真的需要像 npm 模块这样的东西,因为我不想访问客户端文件系统,而是我自己在 S3 上的文件系统。 我已经使用 XMLHttpRequest 从这些文件中读取了数据,但我也可以只列出名称吗?
如果我有一些类似的代码,那就太好了: var arrFiles = []; arrFiles = readFiles("./files/*");
另一种方法是使用 AWS Lambda 读取所有文件名,将它们保存为文本文件中的列表,然后使用 js 读取该文件以在网站上打印名称。看起来很复杂。
如果这有任何意义。 提前致谢
【问题讨论】:
-
浏览器不能在没有服务器帮助的情况下访问服务器的文件系统,你肯定需要一些服务器端代码。
-
好的,谢谢:)。但是为什么我可以读取这些文件的内容而不是所有文件的名称?
-
@TamDo - 因为它们是根本不同的东西,具有不同的安全含义,一个在浏览器中被允许,另一个则不是。您也许可以将您的 S3 网站配置为具有“索引”页面(Web 服务器的相当标准的功能,但 S3 是一个不同的野兽)。如果可以,那么您可以从基于浏览器的 JavaScript 代码中查询和解析该页面。但是我不知道 S3 网站托管,所以我不知道这是否可能。
-
好吧,我没想到。感谢您的回答。我将尝试 aws lambda 解决方案。
-
它看起来像you can configure an index document,但由于它会在有人访问您网站的根目录时显示,所以您可能不想走那条路。 Lambda 或者坦率地说只是一个手动维护的文件听起来是你最好的选择。
标签: javascript amazon-web-services amazon-s3 xmlhttprequest filesystems