非常に大きなファイル(4 Gb以上)のzipファイル(gzipやその他の圧縮形式ではないzipファイル形式)をオンザフライで(圧縮中にファイルの送信を開始できるように)作成するためのライブラリはありますか?
圧縮率はあまり重要ではありません (ほとんどのメディア ファイル)。
ライブラリには C インターフェイスがあり、Debian と OSX で動作する必要があります。
非常に大きなファイル(4 Gb以上)のzipファイル(gzipやその他の圧縮形式ではないzipファイル形式)をオンザフライで(圧縮中にファイルの送信を開始できるように)作成するためのライブラリはありますか?
圧縮率はあまり重要ではありません (ほとんどのメディア ファイル)。
ライブラリには C インターフェイスがあり、Debian と OSX で動作する必要があります。
libarchiveは、オンザフライで、さらにはメモリ内ファイルでさえ、必要な形式をサポートします。
zlib は、チャンクによる圧縮をサポートしています。ライブラリが次のチャンクを圧縮している間に、小さなチャンクを圧縮した直後に送信を開始できるはずです。(この例を参照)
(残念ながら、ファイルテーブルはzipファイルの最後に格納されているため、受信側でファイルが完成するまでファイルは使用できません)
この質問は古く、すでに回答されていますが、これを見つけた人のための新しい潜在的な解決策に注意します.
Cでストリーミング方式でZIPアーカイブを作成する、非常によく似た、ポータブルで非常に小さなライブラリが必要でした.zlibを使用するものを作成しました。
https://github.com/CTrabant/fdzipstream
そのコードは zlib のみに依存し、基本的に ZIP アーカイブを作成するための単純なインターフェイスを提供します。(私にとって)最も重要なことは、出力ストリームがシーク可能である必要がないため、出力をパイプ、ソケットにストリーミングできることです。コードは非常に小さく、単一のソース ファイルとヘッダー ファイルです。OSX と Linux で動作し、おそらく他の場所でも動作します。私以外の誰かの役に立てば幸いです...