使用Rails,HTTParty和Paperclip的“OpenURI :: HTTPError:401 Unauthorized”

时间:2016-09-08 23:16:48

标签: ruby-on-rails paperclip httparty eventbrite

我正在使用HTTParty从Eventbrite API获取数据。

response = HTTParty.get("https://www.eventbriteapi.com/v3/events/search?token=#{Figaro.env.eventbrite_oauth_token}")   

我正在尝试将事件附件保存到我的对象中。 (我正在使用回形针上传图片)。

@event.image = "https://img.evbuc.com/http%3A%2F%2Fcdn.evbuc.com%2Fimages%2F18699100%2F162201087004%2F1%2Foriginal.jpg?h=200&w=450&rect=0%2C194%2C2000%2C1000&s=67649c6c8e7ef66e409189bf08474203"

但我收到错误:

  

“OpenURI :: HTTPError:401 Unauthorized”,包含Rails,HTTParty和   回形针“。

关于如何修复的任何想法?

2 个答案:

答案 0 :(得分:3)

我注意到在新版本的Paperclip中,当要求Paperclip通过URL导入资产时,我需要在URI.parse中包装任何URL字符串。

所以对你的例子来说:

@event.image = URI.parse("https://img.evbuc.com/http%3A%2F%2Fcdn.evbuc.com%2Fimages%2F18699100%2F162201087004%2F1%2Foriginal.jpg?h=200&w=450&rect=0%2C194%2C2000%2C1000&s=67649c6c8e7ef66e409189bf08474203")

答案 1 :(得分:0)

我查看了Paperclip代码,了解为什么在URI.parse中包装URL有效。

事实证明,Paperclip使用不同的适配器类来处理不同的目标。

首先导致附件失败的原因是因为处理URL的HttpUrlProxyAdapter中的URL处理a recent change。 此更改阻止附加具有已编码的URL的文件。

使用URI.parse包装URL确保您的附件由URI Adapter处理。