【发布时间】:2021-08-16 12:40:46
【问题描述】:
我有一个要求:
I have multiple files on the server location
My Response size limit is 100 MB, Max
所以我的用例是合并文件并以 zip 格式生成并将附件发送到客户端浏览器。但是,这里客户端浏览器只有一个按钮“全部下载”。基于单击该按钮,位于服务器上的所有文件都应作为多个 zip 文件下载到客户端。 例如,我有 7 个文件
1.txt - 24 MB
2.txt - 30 MB
3.txt - 30 MB
4.txt - 30 MB
5.txt - 40 MB
所以,通过单击按钮,应该下载两个 zip 文件,因为 1.zip 包含 1.txt、2.txt、3.txt,因为它。大约有 100 MB,另一个 2.zip 将包含 4.txt 和 5.txt。
我在网络上遇到过很多事情,例如压缩文件并将其作为响应发送,但只有在响应传输后通道关闭时才会发送响应。
http://techblog.games24x7.com/2017/07/18/streaming-large-data-as-zipped-file-from-rest-services/
https://javadigest.wordpress.com/2012/02/13/downloading-multiple-files-using-multipart-response/
此外,UI 可以对端点有多个请求,但我有多个用户,所以我可能需要跟踪用户和文件。任何想法或实施将不胜感激。
提前致谢。
【问题讨论】:
-
我认为多部分响应不会起作用,因为它被视为一次下载。您可以通过创建一个端点来伪造它,该端点将返回一个用于多次下载的 url 列表,然后在客户端站点上一个一个动态地下载它们
标签: java spring spring-boot rest session