【问题标题】:How Would I Serve Thousands of Files per Request我如何为每个请求提供数千个文件
【发布时间】:2014-12-16 22:34:32
【问题描述】:

我正在开发一个应用程序,用户可以在一个请求中将数千个文件下载到一个 zip 文件中。显然,这对我们的服务器来说是不切实际的。向用户提供数千个文件的最佳方式是什么?

现在,我一直在做的只是让 jquery fileDownload 库请求 100 个文件,然后在成功处理程序中再次调用 fileDownload 以获取另外 100 个偏移 100 的文件。问题在于fileDownload 库(或服务器)等待大约 20 秒,直到调用 fileDownload 失败回调。

此方法的另一个问题是客户端接收数百个弹出窗口询问他们是否要下载 100 个文件是不切实际的。

我们也无法在响应中发回数千个文件,因为我们的服务器没有也不会有那么多内存。

【问题讨论】:

  • “很明显,这对我们的服务器不实用。”...“很明显”?您在问题的其余部分中描述了为什么其他选项更不切实际。
  • 好吧@kryger,你有什么建议?

标签: spring spring-mvc tomcat tomcat7


【解决方案1】:

这纯粹是基于我的经验的意见,但我在使用中看到了两个选项:

选项 1:

批量处理文件,压缩,然后通知用户下载位置。这应该是有限的文件数量和大小,因为它可能会耗尽服务器资源。如果您有大量用户,我不建议您这样做。

选项 2(最佳):

将文件批量处理成压缩文件,然后启用 FTP 到该位置以获取文件,或者如果您的用户有 FTP 位置,则将文件传输到 FTP 位置。我可以肯定地告诉你,这是最有效的,我参与过的许多公司都在使用它。

【讨论】:

  • 批处理是什么意思?如果服务器要使用大量内存在服务器上创建文件,为什么不直接使用该内存根据请求将文件发送给用户?
  • 批处理作业区域旨在处理大量数据。相比之下,消耗的资源非常少。
  • 所以你推荐的是 Spring batch 之类的东西?
  • 如果它符合您的要求,那么是的,您可以使用它。根据服务器,您也可以批量开发数据库和脚本
猜你喜欢
  • 2018-07-12
  • 2019-08-21
  • 1970-01-01
  • 2016-08-08
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 2020-03-08
相关资源
最近更新 更多