RubyでHTTP経由でバイナリファイルをダウンロードする方法
タグ: ruby / 初版公開: 2014-03-29

UNIX風OSであればwgetを実行してしまうのが簡単である。

`wget http://www.xmisao.com/xmisao_icon_96x96.png`

純粋にRubyスクリプトでファイルをダウンロードするのならnet/httpライブラリを使って以下のようにする。

require 'net/http'
Net::HTTP.start('www.xmisao.com') do |http|
  res = http.get('/xmisao_icon_96x96.png')
  open('xmisao_icon_96x96.png', 'wb'){|f|
    f.write(res.body)
  }
end

より簡単にopen-uriライブラリを使う方法もある。

require 'open-uri'
open('xmisao_icon_96x96.png', 'wb'){|saved_file|
  open('http://www.xmisao.com/xmisao_icon_96x96.png', 'rb'){|read_file|
    saved_file.write(read_file.read)
  }
}

参考