Linux で作業している場合は、zip (ほとんどの Linux ディストリビューションのコマンド ライン ユーティリティ) を使用して実行できます。アプリに以下を含めるだけです。
spawn = require('child_process').spawn;
zip = spawn('zip',['-P', 'password' , 'archive.zip', 'complete path to archive file']);
zip .on('exit', function(code) {
...// Do something with zipfile archive.zip
...// which will be in same location as file/folder given
});
フォルダーを圧縮したい場合は、ファイル パスの代わりにフォルダー パスの前に別の引数「-r」を追加します。
これはメインプロセスとは別のスレッドを生成するため、ブロックされないことに注意してください。 child_process
の詳細については、 こちらをご覧ください http://nodejs.org/api/child_process.html
私のようにここにたどり着いた人のために、ノードでいくつかのパッケージを試しましたが、最終的にこれを使用しました:https://www.npmjs.com/package/minizip-asm.js
パスワード (AES を使用) をサポートし、非常に使いやすいです。パスワードをサポートしていることがわかったのはこれだけだったので、ダウンロード数がそれほど多くないことに驚いています.
私は同じ問題を抱えていて、それを行うためのパッケージを見つけることができなかったので、アーカイバ パッケージへのプラグインとして、自分で作成しました。純粋な JS、外部の zip ソフトウェアは必要ありません。
ここにあります - https://www.npmjs.com/package/archiver-zip-encrypted.従来の Zip 2.0 暗号化と WinZip の AES-256 暗号化の両方をサポートします。