Я пытаюсь загрузить изображения из Интернета и загрузить их в 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
?