在node.js请求上连接GZip / Deflate数据

您好,我明白,在操作系统文件系统上的Gzipfunction可以使用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 concat,标题(pre-gzipped内容),主要内容(pre-gzip),边栏和其他小部件是在文件系统上的gzip二进制数据文件比它似乎不工作,我只能看到作为随机二进制符号显示的第一个块(标题)和其他附加内容的文本内容。

首先想了解是否有可能,如果是的话,我该如何实现零碎的caching。

我只想看看是否可以使用压缩碎片caching,否则计划B是使用普通碎片caching和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命令行进行压缩,如果我只写入其中的一个比它工作正常,但追加不起作用。

您的原始gzip示例“工作”,因为gunzip工具被编写为处理单个文件中的多个条目。 它不适用于某些浏览器,因为它们需要单个gzip条目。

请参阅:将多个zlib压缩数据stream高效地连接成一个stream