// npm安装:npm i cos-js-sdk-v5 --save
import COS from 'cos-js-sdk-v5'
//上传腾讯云(data后端给的token等数据,file文件信息,obj回调)
var uploadFile = (data,file,obj) => {
var keyall = (new Date()).getTime() + '1' + Math.floor(Math.random() * 10000) // 当前时间戳+随机数
var cos = new COS({
// 必选参数
getAuthorization:(options, callback)=>{
callback({
TmpSecretId: data.credentials.tmpSecretId,
TmpSecretKey: data.credentials.tmpSecretKey,
XCosSecurityToken: data.credentials.sessionToken,
// 建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
StartTime: data.startTime, // 时间戳,单位秒,如:1580000000
ExpiredTime: data.expiredTime, // 时间戳,单位秒,如:1580000900
});
},
// 可选参数
FileParallelLimit: 3, // 控制文件上传并发数
ChunkParallelLimit: 3, // 控制单个文件下分片上传并发数
ProgressInterval: 1000 // 控制上传的 onProgress 回调的间隔
});
cos.putObject({
Bucket: data.bucket,
Region: data.region,
Key: data.prefix + keyall, // 此处我们需要把后端返回上传文件路径拼接才能访问(没拼之前报错403)
Body: file,
},(err, data)=>{
if (data.statusCode === 200) {
// console.log(data.Location)
// 上传成功得到的资源地址
let path = 'https://' + data.Location
obj(path) // 回调
Toast.clear();
}
});
}
注意:cos.putObject() 里面的 key