我正在使用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和 回形针“。
关于如何修复的任何想法?
答案 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处理。