我想將幾個readeableStreams壓縮成一個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戴夫,我添加了一個後續問題,如果你可以用以及 –