Shp*_*ord 4 ruby open-uri file
当尝试open()远程图像时,有些人返回,StringIO而其他人则返回File......我该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>
Run Code Online (Sandbox Code Playgroud)
我正在使用Paperclip来保存远程图像(存储在S3中),所以基本上想做:
user = User.new
user.avatar = open(url)
user.save
Run Code Online (Sandbox Code Playgroud)
sia*_*ame 13
Open-URI对象有一个10KB限制StringIO,超出它的任何东西,它将它存储为临时文件.
实现此目的的一种方法是实际更改对象Open-URI限制所需的常量StringIO.您可以通过将常量设置为0;
OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
OpenURI::Buffer.const_set 'StringMax', 0
Run Code Online (Sandbox Code Playgroud)
将它添加到您的初始化程序中,您应该很高兴.
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |