是否可以使用Node.js流构建zip存档,并在创建时通过对HTTP GET请求的响应将该zip存档提供给客户端/用户?我正在寻找一种解决方案,最好避免将整个zip缓冲到服务器上的内存中。
答案 0 :(得分:1)
压缩完整目录的最佳选择是使用子进程使用zip
二进制文件,并将其输出传递给HTTP响应:
var child = require('child_process');
var zipProcess = child.spawn('zip', ['-r', '-', 'directory_to_be_compressed']);
zipProcess.stdout.pipe(res);
但是,如果您只需要压缩一个文件,则可以使用zlib standard library:
var gzip = zlib.createGzip();
var fs = require('fs');
var inp = fs.createReadStream('input.txt');
inp.pipe(gzip).pipe(res);
答案 1 :(得分:0)
这不是Node,但这个项目完全符合您的要求。您可以将其作为独立服务器托管,并从Node调用它: