【发布时间】:2012-09-12 19:22:37
【问题描述】:
我正在尝试使用他们的 v2 api 将文件上传到 box.com。 我能够使用 curl 成功上传文件,但无法从我的 rails 应用程序上传文件。我正在向我的上传函数传递正确的文件夹 ID,并且文件是由我的应用程序中的表单上传创建的临时文件对象。
这里是成功的 curl 命令
curl https://upload.box.com/api/2.0/files/data -H "Authorization: BoxAuth api_key=API_KEY&auth_token=TOKEN" -F contract=@test.png -F folder_id=387656851 -ssl3
这是我的红宝石代码
class BoxApi
require 'httmultiparty'
include HTTMultiParty
ssl_version :SSLv3
def initialize
@key = API_KEY
@token = TOKEN
end
def upload_file(folder_id,file,filename,content_type)
File.open(file) do |open_file|
response = self.class.post('https://upload.box.com/2.0/files/data', :query => {
:file => open_file,
:folder_id => folder_id
}, :headers => {'Authorization' => "BoxAuth api_key=#{@key}&auth_token=#{@token}"})
p response
end
结束
我从带有此文本的框中返回一个 html 页面
您的防火墙似乎阻止了 Box,或者您遇到了错误。
请联系您的 IT 管理员配置您的防火墙以识别 .box.com、.box.com 和 .boxcdn 的所有子域。网。应该为这些域打开的端口是 80 和 443。
如果这不能解决问题,请在 https://www.box.com/help 提交支持票。
有什么想法为什么 curl 命令可以工作,但 ruby 代码不能工作?
【问题讨论】:
标签: ruby file-upload box-api httparty