在Heroku上使用open-uri时出错

时间:2011-09-17 18:30:20

标签: ruby-on-rails ruby ruby-on-rails-3 heroku paperclip

我正在使用以下代码打开并使用Paperclip将Facebook个人资料图片上传到S3。代码在我的localhost上工作正常(Rails 3.1,ruby 1.9.2 p290),但它在heroku上断了(bamboo-mri-1.9.2)

facebook_image_url = access_token['user_info']['image'].gsub("square", "large")
url = URI.parse(facebook_image_url)

#Follow the redirect of Facebook profile picture url
res = Net::HTTP.start(url.host, url.port) { |http|
  http.get(facebook_image_url)
}

signed_in_resource.avatar = open(res['location'])
signed_in_resource.save
signed_in_resource

有没有人有任何建议?

1 个答案:

答案 0 :(得分:0)

我有类似的问题通过使用更新版本的URLTempfile解决了这个问题。还使用S3作为图像存储。

https://github.com/chris/paperclip_url_support,放入您安装的lib文件夹中。

product = Product.first(:conditions => {:_id => self.product_id})
raise "Unable to get product with id #{self.product_id}" unless product
product.picture = URLTempfile.new(self.image_url)
product.save!

在heroku的生产中使用此配置与您相同的配置。 (Heroku 1.9.3,Rails 3.1)。

希望这会对你有所帮助。