いくつかのreadeableStreamをwritableStreamに圧縮したいと思う。 目的はメモリ内のすべてを行い、ディスク上に実際のzipファイルを作成しないことです。そのためnode.js - 出力がバッファであるところでアーカイバを使用する
私はアーカイバ
let bufferOutput = Buffer.alloc(5000);
let archive = archiver('zip', {
zlib: { level: 9 } // Sets the compression level.
});
archive.pipe(bufferOutput);
archive.append(someReadableStread, { name: test.txt});
archive.finalize();
を使用している私はラインarchive.pipe(bufferOutput);
上のエラーを取得します。
これはエラーです:「dest.onは関数ではありません」
私が間違って何をやっていますか? Thxを
UPDATE:
私はテストやZIPファイルの次のコードを実行しているが適切に作成されていません。私は何が欠けていますか?
const fs = require('fs'),
archiver = require('archiver'),
streamBuffers = require('stream-buffers');
let outputStreamBuffer = new streamBuffers.WritableStreamBuffer({
initialSize: (1000 * 1024), // start at 1000 kilobytes.
incrementAmount: (1000 * 1024) // grow by 1000 kilobytes each time buffer overflows.
});
let archive = archiver('zip', {
zlib: { level: 9 } // Sets the compression level.
});
archive.pipe(outputStreamBuffer);
archive.append("this is a test", { name: "test.txt"});
archive.finalize();
outputStreamBuffer.end();
fs.writeFile('output.zip', outputStreamBuffer.getContents(), function() { console.log('done!'); });
Thx Daveさん、もしあなたが助けてくれると助けになるならば、私は追加質問を追加しました –