Ruby打开返回一个字符串而不是一个文件?
发布时间:2020-12-17 01:49:38 所属栏目:百科 来源:网络整理
导读:当尝试打开()远程图像时,一些返回StringIO而其他人返回为File …如何强制文件? data = open("http://graph.facebook.com/61700024/picture?type=square")= #StringIO:0x007fd09b013948data = open("http://28.media.tumblr.com/avatar_7ef57cb42cb0_64.png"
当尝试打开()远程图像时,一些返回StringIO而其他人返回为File …如何强制文件?
data = open("http://graph.facebook.com/61700024/picture?type=square") => #<StringIO:0x007fd09b013948> data = open("http://28.media.tumblr.com/avatar_7ef57cb42cb0_64.png") => #<StringIO:0x007fd098bf9490> data = open("http://25.media.tumblr.com/avatar_279ec8ee3427_64.png") => #<File:/var/folders/_z/bb18gdw52ns0x5r8z9f2ncj40000gn/T/open-uri20120229-9190-mn52fu> 我正在使用Paperclip来保存远程图像(存储在S3中),所以基本上想做: user = User.new user.avatar = open(url) user.save 解决方法
Open-URI对StringIO对象有10KB的限制,高于该值并将其存储为临时文件.
实现此目的的一种方法是实际更改Open-URI对StringIO对象限制所采用的常量.您可以通过将常量设置为0来完成此操作; OpenURI::Buffer.send :remove_const,'StringMax' if OpenURI::Buffer.const_defined?('StringMax') OpenURI::Buffer.const_set 'StringMax',0 将它添加到您的初始化程序中,您应该很高兴. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |