You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用node-gzip压缩文件而非文本?

使用node-gzip压缩文件的正确方法

node-gzip的gzip方法仅接受字符串或Buffer类型的数据,直接传入文件路径或未读取的文件对象无法正常工作。你需要先通过Node.js的fs模块读取文件内容为Buffer,再传入gzip方法处理。

下面是完整的压缩/解压文件示例:

压缩文件步骤

  1. 引入node-gzip的gzip方法和Node.js的fs/promises(异步文件操作适配await语法)
  2. 读取目标文件的Buffer内容
  3. 调用gzip压缩Buffer
  4. 将压缩后的Buffer写入新文件
const { gzip, ungzip } = require('node-gzip');
const fs = require('fs/promises');

async function compressFile() {
  // 读取源文件(替换为你的实际文件路径)
  const fileBuffer = await fs.readFile('./fileA');
  
  // 压缩文件内容
  const compressedBuffer = await gzip(fileBuffer);
  
  // 保存压缩后的文件(建议用.gz作为后缀)
  await fs.writeFile('./fileA.gz', compressedBuffer);
  
  console.log('文件压缩完成');
}

// 执行压缩函数
compressFile().catch(err => console.error('压缩出错:', err));

解压文件步骤

如果需要解压生成的.gz文件,可参考以下代码:

async function decompressFile() {
  // 读取压缩文件
  const compressedBuffer = await fs.readFile('./fileA.gz');
  
  // 解压内容
  const decompressedBuffer = await ungzip(compressedBuffer);
  
  // 保存解压后的文件
  await fs.writeFile('./fileA_decompressed', decompressedBuffer);
  
  console.log('文件解压完成');
}

// 执行解压函数
decompressFile().catch(err => console.error('解压出错:', err));

注意事项

  • 无论处理ASCII文本还是二进制文件,读取为Buffer都能兼容,无需额外转换
  • 确保文件路径正确,避免因路径问题导致读取失败
  • 所有异步操作需放在async函数中,或用.then()链式调用处理Promise

内容的提问来源于stack exchange,提问作者kn11n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:21:00