oss 使用 JS 的 sdk,不能再 https 下進行 Web 直傳

linuxMr發表於2018-02-25

使用js的sdk進行web端直傳,開發環境下測試沒有問題,但部署到伺服器上時出現了問題,伺服器上的站點是基於https協議進行訪問的,在此情況下,web端直傳出現了異常,錯誤如下:

TypeError: Failed to fetch (req "error"), PUT http: //sun8wd.oss-cn-shanghai.aliyuncs.com/1463472966671/%E6%89%AB%E6%8F%8F1.PDF -1 (connected: false, keepalive socket: false, agent status: {"createSocketCount":0,"closeSocketCount":0,"errorSocketCount":0,"timeoutSocketCount":0,"requestCount":0,"freeSockets":{},"sockets":{},"requests":{}})(…)

錯誤資訊是catch中的console.log輸出的

client.multipartUpload(file.name,file,option).then(function(result){
console.log(result);
}).catch(function(err){
console.log(err);
});

排版醜陋,請忽略,我在瀏覽器的console中的截圖,還有程式碼的截圖,都不允許我上傳,說是內容不合法。。。也不知道是怎麼個不合法。

解決辦法 :

  1. 檢查 使用者掉線 (有沒有上傳的許可權)
  2. 這是由於在HTTPS的網頁中,不允許發起HTTP的請求,你可以使用https的endpoint。

var client = new OSS.Wrapper({
region: 'oss-cn-shanghai',
secure: true, (新增一個引數試試)
accessKeyId: '',
accessKeySecret: ''
});

望高手指導修改,謝謝

使用心得 如果上面兩個方法都無法處理 :
考慮是不是 應用的sdk的問題 :
http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js (之前只用這個外掛,傳到500多M就會出現連結失敗的提示,必須強制重新整理才能再次上傳);
可以替換成 :
http://gosspublic.alicdn.com/aliyun-oss-sdk.min.js
替換之後的checkpoint 會有變化,根據自己的需求改變checkpoint

相關文章