Получить буфер из архиватора как вывод - PullRequest
0 голосов
/ 28 сентября 2018

Попытка получить буфер как вывод из архиватора . архиватор может использовать Stream только как канал, поэтому я решил использовать пакет stream-buffers :

var archiver = require('archiver');
var streamBuffers = require('stream-buffers');
var myWritableStreamBuffer = new streamBuffers.WritableStreamBuffer({
initialSize: (10000 * 1024),   // start at 100 kilobytes.
incrementAmount: (1000 * 1024) // grow by 10 kilobytes each time buffer overflows.
});

var archive = archiver('zip', {
gzip: true,
zlib: { level: 9 } // Sets the compression level.
});

archive.on('error', function(err) {
console.log(err);
throw err;
});

archive.pipe(myWritableStreamBuffer);
archive.append(buffer1, { name: title1 });
archive.append(buffer2, { name: title2 });
archive.finalize();

console.log(myWritableStreamBuffer.getContentsAsString("base64"));

Возвращает значение false (означает, что буфер пуст, яповерь) я пытался обрабатывать события .on "данные", но похоже, что ничего не пишет в поток

...