2015-05-26 7 views
0

Я пытаюсь загрузить изображения из Интернета и загрузить их в Cloudinary. В коде у меня есть работы для некоторых изображений, но не для других. Я изолировал проблему вплоть до этой линии (это требует open-uri):Открытый URI Неверный вывод

image = open(params[:product_image][:main]) 

Для this image, он отлично работает. image является

#<Tempfile:/var/folders/49/bmhbmmzj5fl31dm9j6m6gxr00000gn/T/open-uri20150526-7662-1b676ws> 

и cloudinary принимает это. Однако, когда я пытаюсь тянуть this image, изображение становится

#<StringIO:0x007fa0267c8f80 @base_uri=#<URI::HTTP:0x007fa0267c92c8 URL:http://www.spiresources.net/WebImages/480/swatch/CELW.JPG>, 
@meta={"date"=>"Tue, 26 May 2015 22:17:47 GMT", "server"=>"Apache/2.2.22 (Ubuntu)", 
"last-modified"=>"Mon, 29 Jun 2009 00:00:00 GMT", "etag"=>"\"44700f-c35-46d715f090000\"", 
"accept-ranges"=>"bytes", "content-length"=>"3125", "content-type"=>"image/jpeg"}, @metas={"date"=>["Tue, 26 May 2015 22:17:47 GMT"], "server"=>["Apache/2.2.22 (Ubuntu)"], 
"last-modified"=>["Mon, 29 Jun 2009 00:00:00 GMT"], "etag"=>["\"44700f-c35-46d715f090000\""], "accept-ranges"=>["bytes"], 
"content-length"=>["3125"], "content-type"=>["image/jpeg"]}, @status=["200", "OK"]> 

который cloudinary отторгает и возвращает ошибку «Нет преобразования StringIO в строку». Почему open-uri возвращает разные объекты для похожих изображений? Как я могу сделать open-uri вернусь tempfile или по крайней мере превратить мой StringIO в tempfile?

ответ

2

Вы можете просто указать URL-адрес метода загрузки в Cloudlife. Затем CloudLine будет напрямую извлекать удаленный ресурс.

Смежные вопросы