如何用zlib.gzipSync(buffer[ options])压缩文件,用zlib.gunzipSync(buffer[ options])解压文件?

How to use zlib.gzipSync(buffer[, options]) for compressing files, and zlib.gunzipSync(buffer[, options]) for decompressing files?

大家好

我一直在思考如何在同步模式下使用 zlib,(同步模式对我来说很重要)

我试了很多次都失败了,节点文档不完全清楚,缺少使用示例

我打算做的是:

一个函数 压缩包含一些数据的文本文件 "myfile.txt" 作为文本 "Some text" 并将其保存为 "myfile.txt.gz"

function zip(fullPathToFile){
  const zlib= require('zlib');

  //some cool stuff...using:

  zlib.gzipSync(buffer[, options])

}

将 "myfile.txt.gz" 解压缩到 "myfile.txt"

的函数
function unZip(fullPathToFile){
  const zlib= require('zlib');

  //some cool stuff...using:

  zlib.gunzipSync(buffer[, options])

}

都在同一个目录下

有什么想法吗?

感谢大家的阅读和帮助

我首先使用 fs.readFileSync 读取文件,然后将该缓冲区(数据)作为第一个参数插入 zlib.gzipSync。出来的也是一个Buffer(压缩后的数据);我使用 fs.writeFileSync.

将其写入文件
const fs = require("fs");
const zlib = require("zlib");
function zip(path) {
    let data = fs.readFileSync(path);
    data = zlib.gzipSync(data);
    fs.writeFileSync(`${path}.gz`, data);
}

对于解压缩,将 zlib.gzipSync 替换为 zlib.gunzipSync 是您唯一需要进行的编辑。