是否有用于动态创建zip文件(zip file format非gzip或任何其他压缩格式)的库(因此我可以在压缩时开始发送文件)用于非常大的文件(4 Gb及以上)。
压缩比无关紧要(主要是媒体文件)。
库必须有一个c接口,可以在Debian和OSX上运行。
答案 0 :(得分:4)
libarchive支持您想要的任何格式,即时内存文件。
答案 1 :(得分:3)
zlib支持通过块进行压缩。你应该能够在压缩之后立即开始发送一个小块,而库仍在压缩下一个块。 (见this example)
(遗憾的是,文件表存储在zip文件的末尾,因此文件将无法使用,直到接收方完成为止)
答案 2 :(得分:1)
虽然这个问题已经陈旧并已经得到解答,但我会为那些找到这个问题的人注意一个新的潜在解决方案。
我需要一些非常相似的东西,一个可移植且非常小的库,它以C语言的流式方式创建ZIP档案。没有找到任何符合我使用zlib创建的帐单,可在此处获取:
https://github.com/CTrabant/fdzipstream
该代码仅依赖于zlib,本质上提供了创建ZIP压缩文件的简单界面。最重要的是(对我来说)输出可以流式传输到管道,套接字,无论输出流不需要是什么。代码非常小,单个源文件和头文件。适用于OSX和Linux以及其他地方。希望它能帮助除了我以外的人...