我正嘗試使用他們的v2 api將文件上傳到box.com。 我能夠用curl成功上傳文件,但無法從我的rails應用程序上傳文件。我通過我的上傳功能正確的文件夾ID和文件是由我的應用程序中的表單上傳創建的臨時文件對象。將文件上傳到box api v2
這裏是成功的curl命令
curl https://upload.box.com/api/2.0/files/data -H "Authorization: BoxAuth api_key=API_KEY&auth_token=TOKEN" -F [email protected] -F folder_id=387656851 -ssl3
,這裏是我的Ruby代碼
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.net的所有子域。應爲這些域打開的端口是80和443.
如果這樣無法解決問題,請通過https://www.box.com/help提交支持通知單。
任何想法爲什麼curl命令會工作,但不是紅寶石代碼?
我可以做非上傳API調用,如創建文件夾。我試過你的代碼,它沒有工作。我有一個401未經授權的使用該基地的uri,以及我在使用基地uri之前收到的同樣的錯誤,我在https://uploads.box.com/2.0/上方 – Austin