NodeJs
(expressJs)とモジュールを使用してarchiver
zipファイルをクライアントにストリーミングしているため、最終的なZIPファイルはサーバーストレージに存在しません(streaming zip serving
)が、zipが原因で出力ファイルのサイズを取得できないという問題がありますプロセスはリアルタイムで発生します。
コード :
var archiver = require('archiver');
var files = ["file1","file2"];
var zipper = archiver('zip');
zipper.on('error', function(err) {
res.status(500).send({
error: err.message
});
});
res.attachment('output.zip');
res.setHeader('Content-Type', 'application/zip');
zipper.pipe(res);
files.forEach(f => {
zipper.file(f, {
name: f
});
});
zipper.finalize();