Node.js: zlib.gzipSync()

Node.js: zlib.gzipSync()

我有几个关于 zlib 模块的问题,用于 40MB 以下的文件:

  1. zlib.gzipSync() 中应该使用什么样的选项来实现最快的压缩(压缩级别无关紧要)?
  2. 如果 options 未传递给方法,则使用哪些默认值?
  3. 这个方法是returnsBuffer吗?
  4. 最终结果应使用哪种扩展名和 MIME 类型?
  5. 更新: 如何传递文件名? (所以解压后文件有名称和扩展名)

询问是因为reference不善于表达。

是的,该文档中的内容不多。

我建议您查看 zlib manual(zlib.h 源文件)以获取有关已注明参数和操作的信息。

最快的压缩级别为 1。

默认压缩级别为 6。其他默认值可以在 zlib.h 中找到。

似乎没有 deflateSetHeader() 的接口,需要在 gzip header.

中插入文件名

docs describe the options object used for every zlib call. They also point you to the zlib manual 非常详细地描述了这些选项。

最快的level0,也就是说没有压缩。但是,这很愚蠢,因为您也可以完全跳过 gzip 压缩。 1 表示 "some compression with best speed."

也就是说,不要使用 gzipSync。我们不会在节点中同步做事。如果您要将压缩数据写入文件,请执行:

var compressor = zlib.createGzip({level: 1});
compressor.pipe(fs.createWriteStream('output.gz'));

compressor.end(inputData);