我需要创建一个返回由一个或多个文件组成的gzipstream的服务。文件数可能为数百,每个文件可能占用超过500MB。
在传输流时,是否有可能在某种程度上将文件添加到gzipstream中?(为了避免在需要复制到流中的文件时遇到失灵的例外)
等:
- 复制较淡淡的杂物。
- 客户开始阅读流。
- 读取滤清器(客户端)后,将文件b复制到流(服务器端)。
- 客户继续阅读流。
...等等,直到没有更多文件为止。
顺便说一句。这些文件被压缩并不重要,只是将它们合并到zip文件中,以便客户只需下载一个文件。
所以我的目标是:将多个文件传输为一个单个文件,而无需在服务器上立即处理所有文件(以避免将所有文件加载到内存中,并因此提出一个存储外的例外)。<<<<<<<<<<<</p>
这可以通过以某种方式创建自定义流或有一种更简单的方法来完成?
谢谢。
您可以将文件组合到磁盘上的单个zip文件,然后将该文件汇回该文件。
如何将文件组合到zip文件
这解决了内存问题,但这确实意味着您需要很多磁盘空间。