Spring 如何为每个请求提供数千个文件

Spring 如何为每个请求提供数千个文件,spring,spring-mvc,tomcat,tomcat7,Spring,Spring Mvc,Tomcat,Tomcat7,我正在开发一个应用程序,用户可以在一个请求中将数千个文件下载到一个zip文件中。显然,这对于我们的服务器是不实际的。向用户提供数千个文件的最佳方式是什么 现在,我一直在做的就是让jqueryfiledownload库请求100个文件,然后在成功处理程序中再次调用fileDownload,以获得偏移100的另外100个文件。问题是fileDownload库(或服务器)等待大约20秒,直到调用fileDownload失败回调 这种方法的另一个问题是,客户端收到数百个弹出窗口询问他们是否要下载100个

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

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

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


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

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

选项1:

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

选项2(最佳):


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

“显然,这对我们的服务器来说是不实际的。”。。。“显然”?在问题的其余部分,你自己也描述了为什么另一种选择更加不切实际。那么@kryger,你有什么建议?你所说的批处理是什么意思?如果服务器将使用大量内存在服务器上创建文件,为什么不直接使用该内存根据请求将文件发送给用户?批处理作业区域旨在处理大量数据。相比之下,消耗的资源非常少。所以您推荐Spring batch之类的产品?如果它满足您的要求,那么您可以使用它。根据服务器的不同,您也可以开发数据库和脚本批处理