2

嗨,我了解在 OS 文件系统上使用 Gzip 功能可以实现 Concat,

IE

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)、侧边栏和其他小部件时文件系统上的 pre-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 命令行压缩的,如果我只写其中一个,它就可以正常工作,但 append 不起作用。

4

1 回答 1

1

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

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

于 2015-01-11T13:18:35.617 回答