【发布时间】:2017-03-24 06:13:45
【问题描述】:
是否有任何节点模块可以在内存中创建 zip?(我不想将 zip 文件保存在磁盘上)以便我们可以将此创建的 zip 文件发送到其他服务器(从内存)。做这个的最好方式是什么? 这是我的例子:
var file_system = require('fs');
var archiver = require('archiver');
var dirToCompress = 'directoryToZIP';
module.exports = function (req, res, next) {
var archive = archiver.create('zip', {});
archive.on('error', function (err) {
throw err;
});
var output = file_system.createWriteStream('/testDir/myZip.zip',{flags:'a'});//I don't want this line
output.on('close', function () {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
archive.pipe(output);
archive.directory(dirToCompress);
archive.finalize();
};
【问题讨论】:
-
我建议使用archiver 并通过管道将流进行响应,这样您就不必将任何内容写入磁盘。
-
这里输出变量将是其他服务器的api,以便我们可以发送这个zip文件。