騰訊雲物件儲存,PHP與JS對接版本
阿新 • • 發佈:2019-01-29
(PS:這些問題都是前端小夥伴們遇到的)
但是,這樣使用就報錯了,記憶中是ERROR_PROXY_APPID_USERID_NOTMATCH錯誤,感覺很是不可思議,覺得自己已經把自己的appid, key等東西都寫死在這個程式裡了,怎麼會出現這個錯誤,然後上網搜尋,發現有人提到要將self.appid與self.bucket去掉;然後去掉了,果然不報這個錯誤了,該為另一個錯誤,變成了簽名過期的錯誤。很是莫名其妙的。然後查了好多時間都沒有發現問題在哪裡。var self = this; var random = parseInt(Math.random() * Math.pow(2, 32)); var now = parseInt(new Date().getTime() / 1000); var e = now + 60; //簽名過期時間為當前+60s var path = '';//多次簽名這裡填空 var str = 'a=' + self.appid + '&k=' + sid + '&e=' + e + '&t=' + now + '&r=' + random + '&f=' + path + '&b=' + self.bucket; var sha1Res = CryptoJS.HmacSHA1(str, skey);//這裡使用CryptoJS計算sha1值,你也可以用其他開源庫或自己實現 var strWordArray = CryptoJS.enc.Utf8.parse(str); var resWordArray = sha1Res.concat(strWordArray); var res = resWordArray.toString(CryptoJS.enc.Base64); setTimeout(function () {//setTimeout模擬一下網路延遲的情況 callback(encodeURIComponent(res)); }, 1000);