Ruby on Rails: Какой самый простой способ написать двоичный файл, который нужно получить удаленно? - PullRequest
0 голосов
/ 19 апреля 2011

Какой самый простой способ написать двоичный файл, который нужно получить удаленно?

Данные у вас есть:

  • 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)}

1 Ответ

2 голосов
/ 19 апреля 2011

Используйте open-uri, что позволяет вам читать с URL, как если бы это был файл.Обратите внимание, что «b» имеет большое значение в качестве модификатора для режима открытия, особенно если вы работаете в Windows.

require 'open-uri'
open("#{RAILS_ROOT}/tmp/export/albums/#{album_name}/#{photo_name}", 'wb') do |dest|
  open(URI.parse(photo['source']), 'rb') do |src|
    dest.write(src.read)
  end
end

Обратите внимание, что перед записью он читает весь файл в память.Для больших файлов вы можете читать и писать в блоках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...