我使用的解決方案(我不是一個更好的方式來做到這一點)是:
var contenido1 = 'contenido super secreto';
var contenido2 = 'otro contenido';
var password = 'pass';
var nombreFichero = 'fichero'
var nodezip = new require('node-zip')();
var fs = require("fs");
nodezip.file('test1.txt', contenido1);
nodezip.file('test2.txt', contenido2);
var data = nodezip.generate({base64:false,compression:'DEFLATE'});
fs.writeFile(nombreFichero + '.zip', data, 'binary');
var exec = require('child_process').exec,
child;
child = exec('unzip ' + nombreFichero + '.zip -d ' + nombreFichero +
' && zip -junk-paths --password ' + password + ' ' + nombreFichero + '-p.zip ' + nombreFichero + '/*' +
' && rm -rf ' + nombreFichero + ' && rm -f ' + nombreFichero + '.zip',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
它會產生一個臨時zip文件(無密碼)然後用幾個命令,上傳,用密碼壓縮並刪除臨時文件。
谷歌「創建zip節點js」?嘗試http://stackoverflow.com/questions/5754153/zip-archives-in-node-js閱讀第一個鏈接後,似乎產生命令行工具是要走的路。 – 2013-02-12 09:59:55