2011-10-26 91 views
2

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

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

它是如何将有可能提供一个复选框的各个环节,这使得一组对象进行选择,然后下载只有那些物体旁边?

所以要清楚,如果我选择的项目1,2,7 - 和点击一个下载链接 - 只有那些对象将被下载。这可能是一个zip文件或一次一个,虽然我不知道这将如何工作。

我能编码这件事,但我很努力它将如何工作的事情 - 所以过程描述都欢迎。尽管Web应用程序是PHP,但我可以考虑使用Python或Ruby。

回答

3

恐怕这是一个难以解决的问题。

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

所以你留下了一个服务器端解决方案。您需要将文件从S3下载到服务器,并在将zip发送到客户端之前进行压缩。不幸的是,根据文件的数量和大小,这可能会花费这么多时间,所以你需要一个通知系统让用户知道他们的文件何时准备就绪。

而且,除非你的服务器运行在EC2上,你可能是带宽费用支付两倍。 S3到你的服务器,然后你的服务器到客户端。

+0

谢谢杰夫。我有同样的想法。它变成比预期更复杂的解决方案。 – 32423hjh32423