2010-03-29 105 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