0

我已经看了几天了,还没有找到解决方案。有没有办法使用 OAuth-Ruby 上传文件?

我正在使用一个 REST 系统,该系统使用 oauth 保护他们的资源。我正在使用 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>

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

对此有什么想法吗?

谢谢,

4

2 回答 2

1

我知道这很旧,但我也想这样做,看起来可以解决问题。

实际上有一个问题ruby​​-how-to-post-a-file-via-http-as-multipart-form-data 有一个例子。

于 2013-01-09T07:12:29.130 回答
0

这对宝石来说要么是不可能的,要么是oauth极其困难的。无论哪种方式,我都不知道使用该宝石有什么方法。

signet只要您有一种方便的方法来构造有效的多部分请求正文,就可以用我的gem 轻松完成。这种请求主体的构造超出了 OAuth gem 的范围,但对于大多数 HTTP 客户端来说应该很容易做到。然后httpadaptergem 可以将请求转换为signet可以签名的表单。如果不支持您首选的 HTTP 客户端,请告诉我httpadapter,我会立即解决。

请参阅该fetch_protected_resource方法的第二个示例以了解如何完成此操作。

于 2010-11-22T21:50:49.190 回答