我已经看了几天了,但现在还没有 找到了解决方案。有没有办法使用OAuth-Ruby上传文件?
我正在使用一个用oauth保护其资源的REST系统。我正在使用ruby和oauth-ruby构建测试工具,以便更轻松地将测试数据上传到系统。但我无法绕过将文件上传到资源。
当我发送正常请求时,一切正常,但添加文件为 参数使签名无效。
示例:
@access_token.post("http://.../imageresource", {:name=>"awesome cat"}, {'Content-Type' => 'multipart/form-data'})
有效但给了我:
<error>
<message>images/POST: Request has no file data</message>
</error>
我不确定如何将文件添加到帖子中。
对此有何想法?
谢谢,
答案 0 :(得分:1)
我知道这已经过时了,但我也希望这样做,this看起来可以做到这一点。
实际上有一个问题ruby-how-to-post-a-file-via-http-as-multipart-form-data有一个例子。
答案 1 :(得分:0)
这要么与oauth
宝石无关,要么非常困难。无论哪种方式,我都不知道有什么办法可以使用那个宝石。
只要您有一种方便的方法来构建有效的多部分请求体,就可以使用我的signet
gem来完成。这样一个请求体的构造超出了OAuth gem的范围,但对于大多数HTTP客户端来说应该很容易。然后,httpadapter
gem可以将请求转换为signet
可以签名的表单。如果httpadapter
不支持您首选的HTTP客户端,我们会立即解决。
请参阅fetch_protected_resource
方法的第二个示例,了解如何完成此操作。