1.引入cos-wx-sdk-v5.min.js文件,开始腾讯api上下载的cosjs文件是没法用的,但是由于项目重要,有保障的老师,老师临时改了cos的sdk的源文件,然后就可以引入了
2.使用的页面里引入cos文件,如:
var COS = require(‘../../config/cos-wx-sdk-v5.min.js’);
3.在微信小程序的onload()生命周期里初始化cos,如下:
var cos = new COS({
// ForcePathStyle: true, // 如果使用了很多存储桶,可以通过打开后缀式,减少配置白名单域名数量,请求时会用地域域名
getAuthorization: function (options, callback) {
util.request(‘服务端提供的接口获取key和id’, { method: ‘GET’, dataType: ‘json’ }).then((data) => {
var hasTmpSecretId = data.tmpSecretId;
var hasTmpSecretKey = data.tmpSecretKey;
var hasXCosSecurityToken = data.sessionToken;
var hasTimestamp = data.timestamp;
if (!data) return console.error(‘credentials invalid’);
callback({
TmpSecretId: hasTmpSecretId,
TmpSecretKey: hasTmpSecretKey,
XCosSecurityToken: hasXCosSecurityToken,
StartTime:hasTimestamp,//hasTimestamp,//Math.round(Date.now()/1000), //
ExpiredTime: hasTimestamp + 3600,//Math.round(Date.now()/1000)+3600, //
});
}).catch((error) => {
console.log(error);
});
}
});
this.setData({
cos: cos
});
4.提交并获取等
_this.data.cos.postObject({
Bucket: ‘固定给的’,
Region: ‘固定给的’,
Key: ‘固定给的’ + datas + ‘/’ + uuidData + ‘/’ + filename,
FilePath: filePath,
onProgress: function (info) {
}
}, function (err, data) {
if (data) {
_this.setData({
bigImgtype: true,
fileImg: filePath,
filePath: data.Location //入参给确认提交
});
setTimeout(function () {
wx.hideLoading();
}, 600);
_this.data.cos.getObject({ //获取图片解析的值
Bucket: ‘固定给的’,
Region: ‘固定给的’,
Key: ‘固定给的’ + datas + ‘/’ + uuidData + ‘/’ + filename + ”,
Query:{
‘ci-process’: ‘QRcode’,
},
Expires: 600, // 这样子限制链接900秒后失效
}, (err, data) => {
if(data){
const json = COS.util.xml2json(data.Body); //返回的值格式转化
console.log(“json”,json)
if(json.Response.QRcodeInfo){
_this.setData({
reagentUDI:json.Response.QRcodeInfo.CodeUrl
});
}
}
if(err){
log.error(‘geterr’,err)
const json = COS.util.xml2json(data.Body);
_this.setData({
reagentUDI:json.Response.QRcodeInfo.CodeUrl
});
}
});
}
if(err){
log.error(‘posterror’,err)
wx.hideLoading();
}
});
本文来自 余 倩倩 投稿,不代表 PmTemple 立场,如若转载,请注明出处:
。如有涉及侵权行为,请发送相关证明材料至邮箱admin@pmtemple.com