2

こんにちは、OS ファイル システムの Gzip 機能で Concat が可能であることは理解していますが、

すなわち

gzip -c a.txt > a.gzip
gzip -c b.txt > b.gzip

以下も正しいですが、

cat a.txt b.txt | gzip -c > ab.gzip # is same as
cat a.gzip b.gzip > ab.gzip

ファイル システムでは、これは正しいように思えますが、node.js を使用して同じ概念を実装して、ヘッダー (gzip 処理前のコンテンツ)、メイン コンテンツ (gzip 処理前)、サイドバー、およびその他のウィジェットを連結しようとすると、最初のチャンク (ヘッダー) のテキスト コンテンツと、ランダムなバイナリ シンボルとして表示されるその他の追加されたコンテンツしか表示されません。

最初にそれが可能かどうかを理解したいと思います。可能であれば、断片化されたキャッシュをどのように実装できますか。

圧縮されたフラグメント化されたキャッシュで可能かどうかを確認したいだけです。それ以外の場合、プラン B はプレーンなフラグメント化されたキャッシュと gzip コンテンツ ランタイムを使用することです。

var rs1 = fs.createReadStream('./node_fs/index/index.txt.gz');
var rs2 = fs.createReadStream('./node_fs/index/content.txt.gz');

res.write(rs1);
res.write(rs2);  

さらに、両方のファイルは gzip.exe コマンド ラインを使用して圧縮されており、そのうちの 1 つだけを書き込むと正常に動作しますが、追加は機能しません。

4

1 に答える 1

1

ツールは単一のファイル内の複数のエントリを処理するように作成されているため、元のgzip例は「機能します」。gunzip単一の gzip エントリが必要なため、一部のブラウザーでは機能しません。

参照:複数の zlib 圧縮データ ストリームを 1 つのストリームに効率的に連結する

于 2015-01-11T13:18:35.617 に答える