0

我正在开发一个 ruby​​ 应用程序,并正在尝试将文件上传到 box.net。我让它与 curl 调用一起使用

curl https://www.box.com/api/2.0/files/data -H "Authorization: BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>" -F folder_id=0 -F filename=@test.txt --trace ~/Desktop/log.txt

我试图把它翻译成红宝石,并尝试了以下

request = RestClient::Request.new(:method => :post,:url => "https://www.box.com/api/2.0/files/data",:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>",:filename => "test.txt", :payload => { :multipart => true, :file => File.new("test.txt"))
request.execute

但我不断收到“401:未经授权”的回复。我也尝试过使用 box-api gem,但这似乎只适用于 API 的 1.0 版本,我正在尝试与 2.0 接口。

4

1 回答 1

2

尝试:headers => {:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>"}在通话中使用。那应该可以修复缺少的授权标头。

完整的请求将是:

request = RestClient::Request.new(:method => :post,:url => "https://www.box.com/api/2.0/files/data",:headers => {:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>"},:filename => "test.txt", :payload => { :multipart => true, :file => File.new("test.txt")})
于 2012-08-12T23:43:41.007 回答