官方文档地址:https://cloud.tencent.com/document/product/436/31953
操作步骤
下载cos sdk
安装
复制源码文件中的 cos-wx-sdk-v5.js 到自己小程序代码根目录下任意路径,并用相对路径引用:
小程序域名白名单配置
微信公众平台,选择开发 > 开发设置 > 服务器域名
配置地址: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
request合法域名、uploadFile合法域名
配置地址可以找后端或者cos上传成功会返回数据中有接口地址
初始化
javascript
const COS = require('../../lib/cos-wx-sdk-v5.min.js')
/** 上传临时素材到cos */
uploadMaterialCos (tempFiles) {
this.setData({
isShowModal: false
})
console.log("tempFiles", tempFiles)
const _this = this
const { cosConfig } = _this.data
wx.showLoading({
title: '上传中...',
mask: true
})
// 创建存储通对象
var cos = new COS({
SecretId: cosConfig.secretId, // 获取的密钥id
SecretKey: cosConfig.secretKey // 获取的密钥key
})
tempFiles.forEach(item => {
cos.uploadFile({
Bucket: cosConfig.bucket, /* 必须 */
Region: cosConfig.region, /* 存储桶所在地域,必须字段 */
Key: item.key, /* 必须 */
FilePath: item.path, /* 必须 */
FileSize: item.size, /* v1.4.3之前的版本必须,v1.4.3及以后的版本非必须 */
onProgress: function (progressData) { /* 非必须 */
console.log(JSON.stringify(progressData))
},
onFileFinish: function (err, data, options) { /* 非必须 */
console.log(options.Key + '上传' + (err ? '失败' : '完成'), data)
_this.uploadMaterial(data, item)
}
}, function (err, data) {
console.log('err', err || data)
_this.setData({
isShowModal: false
})
})
})
},
配置信息获取通过后端api
javascript
handleCosCredential () {
cosCredentialApi({}).then(res => {
const { code, data } = res
if (code === 200) {
this.setData({
cosConfig: data
})
} else {
wx.showToast(res.message)
}
}).catch(err => {
wx.showToast(err.message)
})
},
cos参数
上传成功
图片
视频
视频太大,分段上传,取值地址在最外面