2017-03-24 6 views
0

メモリにzipを作成するノードモジュールはありますか(私はディスクにzipファイルを保存しません)メモリ)。これを行う最善の方法は何ですか?ここ は私の例です:任意のノードモジュールを使用してメモリ内のCrete 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(); 

}; 
+0

[archiver](https://www.npmjs.com/package/archiver)を使用してストリームを応答にパイプすることをお勧めします。この方法でディスクに何も書き込む必要はありません。 –

+0

ここで出力変数は、このzipファイルを送信できるように他のサーバーのAPIになります。 – Torreto

答えて

0

にGZipが行います場合は、the built-in zlib moduleを使用しても、外部モジュールをロードすることはできません。

const gzip = zlib.createGzip(); 

// If you have an inputStream and an outputStream: 

inputStream.pipe(gzip).pipe(outputStream); 

にGZipジップのためにではなく、あなたはarchiverzip-streamをチェックアウトすることができます。

関連する問題