Chcę spakować niektóre dane do writableStream.node.js kompresowanie ZIP do pamięci
celem jest zrobienie wszystkiego w pamięci i nie tworzenie rzeczywistego pliku zip na dysku.
Do celów testowych tworzę plik ZIP na dysku. Ale kiedy próbuję otworzyć output.zip
pojawia się następujący błąd: "archiwum jest w nieznanym formacie lub jest uszkodzone". (WinZip w Windows 7 i podobny błąd na MAC)
Co robię źle?
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!'); });
„Co robię źle?” Nie możemy odpowiedzieć na to pytanie, chyba że powiesz nam o wyniku, jaki osiągasz i jaki jest on inny niż oczekiwany wynik. –
Masz rację. Zaktualizowałem moje pytanie. thx –