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

如何使用NodeJS及archiver库将10GB压缩包拆分为5个2GB小文件

使用archiver实现大文件分卷压缩

要实现将大文件分割为多个指定大小的分卷zip文件,你可以利用archiver的volumeSize配置项,直接在初始化archiver实例时指定分卷大小。以下是具体实现代码:

var fs = require('fs');
var archiver = require('archiver');

// 定义分卷大小,2GB = 2 * 1024 * 1024 * 1024 字节
const VOLUME_SIZE = 2 * 1024 * 1024 * 1024;

// 创建输出流的基础路径,分卷会自动命名为 test.zip.001、test.zip.002...
var output = fs.createWriteStream('./test.zip');
var archive = archiver('zip', {
    gzip: true,
    zlib: { level: 9 },
    volumeSize: VOLUME_SIZE // 设置分卷大小
});

archive.on('error', function(err) {
  throw err;
});

// 监听分卷切换事件,可用于日志记录(可选)
archive.on('volume', function(volume) {
  console.log(`已创建分卷:${volume.path}`);
});

archive.pipe(output);

// 添加需要压缩的大文件
archive.file('large-file.zip', {name: 'large-file.zip'});

archive.finalize();

关键说明:

  • volumeSize参数接受字节数,这里设置为2GB的字节值,archiver会自动将压缩后的内容分割为多个不超过该大小的分卷文件。
  • 分卷文件的命名规则为:基础文件名 + .001、.002……依次递增,比如示例中的test.zip.001、test.zip.002等。
  • 解压时需要将所有分卷文件放在同一目录下,使用支持分卷zip解压的工具(如WinRAR、7-Zip)即可合并还原为完整文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:42:22