2016-07-20 1 views
0

タイトルに記載されています。 Webサーバーは1つの.tgzファイルストリームを受信し、新しい.tgzファイルに変換します。私の解決策は、元のfile.tgzストリームをtemp dirに保存し、temp dirに新しいファイルを作成し、temp dirをパックすることです。私はfstreamzlibtarのモジュールを使用します。node.jsに "tar uf"を実装する方法

temp dirを作成せずにオリジナルのtgzファイルに新しいファイルを追加する方法。

答えて

0

zlibディストリビューションの例であるgzappendを見ると、gzipファイルに追加する一般的な方法がわかります。しかし、tarファイルの終わりを示すゼロの最後の1024バイト(圧縮されていない場合)も削除する必要があります。次に、新しいエントリを追加し、圧縮し、終了マーカーを置くことができます。

+0

>最後の1,024バイトの0を取り除く – zyhack

+0

しかし、 'ストリーム終了'イベントの前に読み込みストリームを編集することはできません。 私は 'Node.js'の方法で実装する方法を考えています – zyhack

+0

"Node.js"の仕組みがわかりません。いずれの場合でも、 'gzappend'コードは、オリジナルのgzipストリームを新しいストリームにコピーするように適合させることができます。元のストリームを「編集」する必要はありません。 –

関連する問題