Tôi muốn nén một số dữ liệu vào luồng có thể ghi.node.js nén ZIP vào bộ nhớ
mục đích là thực hiện tất cả trong bộ nhớ chứ không phải để tạo tệp zip thực trên đĩa.
Chỉ để thử nghiệm, tôi đang tạo tệp ZIP trên đĩa. Nhưng khi tôi cố gắng để mở output.zip
tôi nhận được lỗi sau: "lưu trữ là một trong hai định dạng không rõ hoặc bị hư hỏng". (WinZip tại Windows 7 và cũng có lỗi tương tự trên MAC)
Tôi đang làm gì sai?
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!'); });
"Tôi đang làm gì sai?" Chúng tôi không thể trả lời câu hỏi đó trừ khi bạn cho chúng tôi biết kết quả bạn đang nhận được và nó khác với kết quả bạn mong đợi như thế nào. –
Bạn nói đúng. Tôi đã cập nhật câu hỏi của mình. thx –