Rubyのopen-uriで常にTempfileを取得する
open-uriのドキュメントより、
開いたファイルオブジェクトは StringIO もしくは Tempfile ですが
とある。
取得したファイルサイズによって返るオブジェクトの型が変わるらしい。
常に Tempfile
を取得したかったので、以下のようにブロックの中で Tempfile
を作って対応した。
require 'open-uri'
open(url) do |f|
Tempfile.open do |tmp|
tmp.binmode
tmp.write f.read
tmp.rewind
# tmp を使う
end
end