我已经研究这个问题好几天了,还没有找到解决方案。有没有办法使用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>我不知道如何将文件添加到帖子中。
对此有什么想法吗?
谢谢,
发布于 2013-01-09 15:12:29
我知道这是旧的,但我也希望这样做,this看起来可以做到这一点。
实际上,有一个问题ruby-how-to-post-a-file-via-http-as-multipart-form-data,它有一个例子。
发布于 2010-11-23 05:50:49
这要么是oauth gem不可能做到的,要么是极其困难的。无论哪种方式,我都不知道有什么方法可以用这个宝石来做。
只要您有一种方便的方法来构造一个有效的多部分请求体,就可以用我的signet gem轻松地完成这项工作。这样的请求体的构造超出了HTTP的范围,但是对于大多数OAuth客户端来说应该很容易完成。然后,httpadapter gem可以将请求转换为signet可以签名的表单。如果httpadapter不支持您首选的超文本传输协议客户端,请告诉我,我会立即解决这个问题。
请参阅关于fetch_protected_resource方法的第二个示例,以了解如何实现这一点。
https://stackoverflow.com/questions/2537267
复制相似问题