システムコールにドロップダウンすることなく、Rubyスクリプトを介して暗号化/パスワード保護されたファイルを解凍したいと思います。現在、rubyzip ライブラリを使用してファイルを解凍していますが、暗号化されたファイルを操作するためのオプションが表示されません。
これを行うコードまたはライブラリを知っている人はいますか?
はい、ちなみにうまく機能するものがあります。試してみたところ、真ん中にあなたの投稿が見つかりました..
使用例:
require 'archive/zip'
Archive::Zip.extract('example5.zip', 'a_destination', :password => 'seakrit')
これは、Googleで同じものを探している他の誰かに役立つと確信しています:)
システムコールを使用することが正しい答えである場合もあります。それがそこにある理由です。
確かに、ライブラリやメソッドを使用するよりも遅く、洗練されていません。しかし、それは誰かに税金を支払う (ロイヤルティの支払い) よりも安く、自分で新しいライブラリを作成するよりもはるかに高速です。
私がこれまでに聞いた唯一のライブラリは、無料ではないChilkat Ruby Zip ライブラリです。RubyZip ライブラリは、パスワードで保護されたファイルをサポートしていません。これは、基礎となるライブラリである zlib もサポートしていないためです。
ruby ライブラリではありませんが...おそらく無料のオプションです。
アプリが Windows で実行されている場合は、新しい COM インターフェイス経由でDotNetZipライブラリを使用できます。パスワードで保護されたファイル、Zip 暗号化 (弱い)、または WinZip 互換の AES 暗号化を行います。
DotNetZip は無料です。
Windowsが問題外の場合は、別の可能性があります。DotNetZip も Mono で動作します。他のプラットフォームで Ruby から Mono への呼び出しを可能にする Ruby-to-Mono 統合メカニズムがあるかどうかはわかりませんが、存在する場合は、DotNetZip への呼び出しも可能になる可能性があります。
zip ファイルを処理するために、JRuby + Java ライブラリを使用するオプションが常にあります。 http://www.lingala.net/zip4jは (暗号化された) zip ファイルを処理し、Apache のライセンスを受けています。まだ使用していませんが、動作するはずです。