Ruby Oauth文件上传/多部分POST请求

时间:2010-03-29 10:43:49

标签: ruby rest oauth oauth-ruby

我已经看了几天了,但现在还没有 找到了解决方案。有没有办法使用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>

我不确定如何将文件添加到帖子中。

对此有何想法?

谢谢,

2 个答案:

答案 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方法的第二个示例,了解如何完成此操作。