2011-04-19 13 views
0

リモートから取得するバイナリファイルを作成する最も簡単な方法は何ですか?Ruby on Rails:リモートから取得するバイナリファイルを作成する最も簡単な方法は何ですか?

データあなたが持っている:私は現在持っているどのような画像

  • URLは次のとおりです。

    url = URI.parse(photo['source']) 
    File.open("#{RAILS_ROOT}/tmp/export/albums/#{album_name}/#{photo_name}", 'w'){ |f| f.write(Net::HTTP.start(url.host, url.port) {|http| http.get(url.path)}.body)} 
    

答えて

2

あなたのようにURLから読み取ることができます使用open-uri、それはファイルでしたが。 "b"は特にWindowsで実行する場合、オープンモードの修飾子として重要であることに注意してください。

これは、ファイル全体をメモリに読み込んだ後に書き出すことに注意してください。大きなファイルの場合は、ブロック単位で読み書きすることができます。

+0

'Rails.root'を' RAILS_ROOT'として使用する方が、新しいバージョンのRailsで警告が出るでしょう。また、ファイルを保存しているパスが存在することを確認してください。そうしないと、例外が発生します。 – tadman

関連する問題