例
S3Object.url_for(file_path, BUCKET, :expire => 1 * 24 * 60 * 60)
=>期限は1日
expire => 1000 * 24 * 60 * 60
とかは可能でしょうか?
まずは、余計なお世話から。
時間を指定する場合には、:expires_in で、時刻を指定するのが :expires です。
http://amazon.rubyforge.org/
で、指定できる時刻の話。
ソースを読んでいくと、S3Object の定義である object.rb から connection.rb に委譲され、最終的には authentication.rb の QueryString#expires メソッドにたどり着きます。
結局、Time#to_i がパラメータになるので、Time クラスが表現できる時刻が設定できる上限になります。
Time オブジェクトは時刻を起算時からの経過秒数で保持しています。 起算時は協定世界時(UTC、もしくはその旧称から GMT とも表記されます) の 1970年1月1日午前0時です。なお、うるう秒を勘定するかどうかはシステムに よります。
http://doc.ruby-lang.org/ja/1.9.3/class/Time.html
現在の Unix システムでの最大時刻は、 協定世界時の2038年1月19日午前3時14分7秒 です。
というわけで、
expire => 1000 * 24 * 60 * 60
とかは可能でしょうか?
1000日後(三年くらい後)は、余裕です。