是否有一个库用于为非常大的文件(4 Gb 及以上)即时创建 zip 文件( zip 文件格式不是 gzip 或任何其他压缩格式)(因此我可以在压缩时开始发送文件)。
压缩比无关紧要(主要是媒体文件)。
该库必须有一个 c 接口并且可以在 Debian 和 OSX 上运行。
是否有一个库用于为非常大的文件(4 Gb 及以上)即时创建 zip 文件( zip 文件格式不是 gzip 或任何其他压缩格式)(因此我可以在压缩时开始发送文件)。
压缩比无关紧要(主要是媒体文件)。
该库必须有一个 c 接口并且可以在 Debian 和 OSX 上运行。
libarchive 支持您想要的任何格式,即时甚至内存中的文件。
zlib 支持按块压缩。您应该能够在压缩后立即开始发送一个小块,而库仍在压缩下一个块。(见这个例子)
(不幸的是,文件表存储在 zip 文件的末尾,因此文件在接收方完成之前将无法使用)
虽然这个问题很老并且已经回答了,但我会为那些发现这个问题的人指出一个新的潜在解决方案。
我需要一些非常相似的东西,一个可移植且非常小的库,它以 C 的流媒体方式创建 ZIP 档案。没有找到任何符合要求的东西,我创建了一个使用 zlib 的库,可在此处获得:
https://github.com/CTrabant/fdzipstream
该代码仅依赖于 zlib,本质上提供了一个简单的界面来创建 ZIP 档案。最重要的是(对我来说)输出可以流式传输到管道、套接字,因为输出流不需要是可搜索的。代码很小,一个源文件和一个头文件。适用于 OSX 和 Linux 以及可能的其他地方。希望它对我以外的人有所帮助...