压缩与解压缩库 compressing 使用指南

压缩与解压缩库 compressing 使用指南

compressing Everything you need for compressing and uncompressing compressing 项目地址: https://gitcode.com/gh_mirrors/co/compressing


安装指南

在您的Node.js项目中集成compressing库非常简单,您只需执行以下命令:

npm install compressing

这将下载并添加compressing到您的项目依赖中。


项目的使用说明

单文件压缩

以gzip为例,tar、tgz、zip操作类似。

承诺(Promise)风格
const compressing = require('compressing');

// 压缩文件至gzip格式
compressing.gzip.compressFile('源文件路径', '目标压缩文件路径.gz')
  .then(() => console.log('压缩完成'))
  .catch(errorHandler);

// 也可以处理文件缓冲
compressing.gzip.compressFile(fileBuffer, '目标压缩文件路径.gz')
  .then(() => console.log('压缩完成'))
  .catch(errorHandler);

// 或者处理流
compressing.gzip.compressFile(fileStream, '目标压缩文件路径.gz')
  .then(() => console.log('压缩完成'))
  .catch(errorHandler);
流(Stream)风格
const compressing = require('fs').createWriteStream;
const gzipStream = new compressing.gzip.FileStream({ source: '源文件路径' });

gzipStream.on('error', errorHandler);
gzipStream.pipe(fs.createWriteStream('目标压缩文件路径.gz')).on('error', errorHandler);

// 使用pump处理错误更简洁
const pump = require('pump');
pump(fs.createReadStream('源文件路径'), new compressing.gzip.FileStream(), fs.createWriteStream('目标路径.gz'), errorHandler);

目录压缩

由于gzip仅支持单文件压缩,目录应考虑使用tar进行压缩。

compressing.tar.compressDir('要压缩的目录路径', '目标.tar')
  .then(() => console.log('目录压缩完成'))
  .catch(errorHandler);
  
// 或者流方式
const tarStream = new compressing.tar.Stream();
tarStream.addEntry('要压缩的目录路径');
tarStream.on('error', errorHandler)
  .pipe(fs.createWriteStream('目标.tar'))
  .on('error', errorHandler);

文件解压缩

同样提供Promise和流两种方式,下面展示Promise风格解压tgz文件的例子:

const compressing = require('compressing');
compressing.tgz.uncompress('压缩文件路径.tgz', '解压后的目录')
  .then(() => console.log('解压缩完成'))
  .catch(errorHandler);

对于流,处理目录结构时需要额外注意每个条目:

const compressing = require('compressing');
const mkdirp = require('mkdirp');

new compressing.tgz.UncompressStream({ source: '压缩文件路径.tgz' })
  .on('entry', header => {
    if (header.type === 'file') {
      new compressing.tgz.UncompressStream()
        .pipe(fs.createWriteStream(path.join('目标目录', header.name)))
        .on('error', errorHandler);
    } else if (header.type === 'directory') {
      mkdirp(path.join('目标目录', header.name), errorHandler);
    }
  })
  .on('error', errorHandler)
  .on('finish', () => console.log('解压缩完成'));

项目API使用文档

  • compressFile: 方便地压缩单个文件,支持不同压缩类型。
  • compressDir: 压缩整个目录,tar/tgz/zip格式适用,注意gzip不直接支持目录压缩。
  • uncompress: 解压缩文件,自动识别tgz/tar/zip/gzip,并解压到指定目录或流。
  • FileStream: 用于压缩单个文件的流接口,适用于进阶流式处理。
  • UncompressStream: 解压缩操作的流接口,尤其适合动态处理压缩包内容。

项目安装方式

已包含于安装指南部分,再次强调,通过npm install compressing即可引入此库到Node.js项目中。


以上即是关于compressing库的基本使用介绍,涵盖了从安装、基本使用、特定功能演示到API概览等全方位指导,确保用户能够高效地利用该库进行文件的压缩和解压缩操作。

compressing Everything you need for compressing and uncompressing compressing 项目地址: https://gitcode.com/gh_mirrors/co/compressing

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦泉瑾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值