从S3下载存储桶中的对象列表

时间:2011-10-26 04:35:50

标签: php javascript amazon-s3

我在Amazon S3上有一个包含数百个对象的存储桶。 我有一个网页列出了所有这些对象,并在html中有一个下载对象链接。

这一切都按预期工作,我可以单独下载每个对象。

如何在每个链接旁边提供一个复选框,允许选择一组对象,然后只选择那些下载的对象?

所以要明确的是,如果我选择了第1项,第2项和第7项 - 并点击了下载链接 - 只会下载这些对象。这可能是一个zip文件或一次一个,但我不知道这将如何工作。

我能够对此进行编码,但我正在努力解决它如何工作 - 所以欢迎使用流程描述。虽然Web应用程序是PHP,但我可以考虑使用python或ruby。

1 个答案:

答案 0 :(得分:3)

我担心这是一个难以解决的问题。

S3不允许对文件进行任何“就地”操作,因此您无法将它们压缩到单个下载中。在浏览器中,您一次只能下载一个URL。当然,没有什么可以阻止用户使用下载管理器手动排队下载,但是没有什么可以帮助解决这个问题。

因此,您将获得服务器端解决方案。在将zip传送到客户端之前,您需要将文件从S3下载到服务器并压缩它们。不幸的是,根据文件的数量和大小,这可能需要花费时间,因此您需要一个通知系统让用户知道他们的文件准备好了。

此外,除非您的服务器在EC2上运行,否则您可能需要支付两倍的带宽费用。 S3到您的服务器,然后您的服务器到客户端。