3月 13
このエントリをはてなブックマークに登録 Yahoo!ブックマークに登録

RubyonRailsアプリケーションでサーバサイドでファイル圧縮、パスワードの設定をしてダウンロードさせる必要があったので調べてみました。

ZipRubyがあったりRubyZipがあったり、どっちがどうなんだか、相変わらずRubyは混乱します。今回は評判のよさそうなZipRubyを使いました。gemでインストールできて、バージョンは0.2.9でした。バージョン低いのがちと気になります。

gem install zipruby

これだけでインストールは終わりです。

require ‘rubygems’
require ‘zipruby’

Zip::Archive.open(‘hoge.zip’,Zip::CREATE) do |arc|
  arc.add_file(‘test.pdf’)
end

Zip::Archive.encrypt(‘hoge.zip’, ‘password’)

コレだけです。簡単すぎる。

複数ファイルをひとまとめにしたい場合は

arc.add_file(‘test.pdf’)

 

を繰り返せばOK。ただ、フォルダごとごっそり圧縮、という方法は不明。フォルダ名を引数に指定したら怒られてしまいました。当然の結果。

最後の行がパスワードの設定です。ZIPファイル作るときにパスワードを設定するのではなく、既存のZIPファイルに対してパスワードを設定する、というイメージですね。Lhaplusではちゃんと解凍できました。

関連性のあるエントリ:

  1. RubyonRailsでファイルI/Oを走らせずにCSVを作成、圧縮してダウンロードさせる方法
  2. RubyでPOST送信して結果を受け取る
  3. RubyonRailsでページングする方法
  4. RubyでMySQLに接続

One Response to “RubyでZIP圧縮、パスワードも設定する”

  1. [...] This post was mentioned on Twitter by shioki, Rubyist Bot. Rubyist Bot said: RT $shioki: RubyでZIP圧縮、パスワードも設定する http://bit.ly/d12Sw8 [...]

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
preload preload preload