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

发布于 2024-12-12 02:58:35 字数 326 浏览 0 评论 0原文

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

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

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

需要明确的是,如果我选择项目 1、2 和 7 - 并单击下载链接 - 则只会下载这些对象。这可能是一个 zip 文件,也可能一次一个,尽管我不知道这是如何工作的。

我有能力对此进行编码,但我很难弄清楚它是如何工作的 - 所以欢迎过程描述。尽管网络应用程序是 PHP,但我可以考虑 python 或 ruby​​。

I have a bucket on Amazon S3 which contains hundreds of objects.
I have a web page that lists out all these objects and has a download object link in html.

This all works as expected and I can download each object individually.

How would it be possible to provide a checkbox next to each link, which allowed a group of objects to be selected and then only those objects downloaded?

So to be clear, if I chose items 1, 2, and 7 - and clicked a download link - only those object would be downloaded. This could be a zip file or one at a time although I have no idea how this would work.

I am capable of coding this up, but I am struggling to thing HOW it would work - so process descriptions are welcome. I could consider python or ruby although the web app is PHP.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪异←思 2024-12-19 02:58:35

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

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

所以你只剩下一个服务器端解决方案。您需要将文件从 S3 下载到服务器并对其进行压缩,然后再将 zip 传送到客户端。不幸的是,根据文件的数量和大小,这可能会花费很长时间,因此您需要一个通知系统来让用户知道他们的文件何时准备好。

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

I'm afraid this is a hard problem to solve.

S3 does not allow any 'in place' manipulation of files, so you cannot zip them up into a single download. In the browser, you a stuck with downloading one url at a time. Of course, there's nothing stopping the user queuing up downloads manually using a download manager, but there is nothing you can do to help with this.

So you are left with a server side solution. You'll need to download the files from S3 to a server and zip them up before delivering the zip to the client. Unfortunately, depending on the number and size of files, this'll probably take so time, so you need a notification system to let the user know when their file is ready.

Also, unless your server is running on EC2, you might be paying twice for bandwidth charges. S3 to your server and then your server to the client.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文