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