2010-03-29 140 views
0

我一直在看这几天的现在还没有 找到一个解决方案。有没有办法使用OAuth-Ruby上传文件?红宝石的Oauth文件上传/多部分POST请求

我与保护他们通过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

@的精英君子OAuth是用于授权认证没有。来自oauth.net - “一个开放的协议,允许从桌面和Web应用程序以简单,标准的方法进行安全的API授权。” 我已经更新的问题,以澄清 – 2010-03-29 10:51:22

+0

正确....对不起,我倾向于混淆身份验证和授权。 – 2010-03-29 12:04:45

+0

对不起,我不是Ruby人员,但你是否将文件数据添加到您的POST请求?你能否检查HTTP Post请求来查看你的文件数据是否已被mimed并发送到Http post? (或者我不清楚?) – 2010-03-29 12:07:09

回答

0

这可能是不可能与oauth宝石或极其困难的事情。无论哪种方式,我都不知道有什么办法可以使用那个宝石。

只要您有一个方便的方法来构建一个有效的多部分请求主体,就可以使用我的signet gem轻松完成。这种请求体的构建超出了OAuth gem的范围,但对大多数HTTP客户端来说应该很容易。然后,该宝石可以将请求翻译成signet可以签名的形式。让我知道如果您的首选HTTP客户端不支持httpadapter,我会立即解决。

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

+0

嗨,鲍勃!声音很好,我会研究它。我已经有一段时间没有和Ruby和Oauth一起工作了,所以在我看看它之前可能需要一段时间,但是从我可以在这里阅读的内容来看,这听起来很有趣。承诺回到你身边。 (如果我不只是在几周内发送消息,那会让我感动) – 2010-11-24 19:38:20