You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.6 KiB
83 lines
2.6 KiB
// import { getOssToken } from "@/service/oss.js";
|
|
let COS = require('@/common/cos-wx-sdk-v5.min.js');
|
|
|
|
/**
|
|
* dispose oss直传文件(视频,图片),传入以下两个参数,返回一个上传后的Array[urlLink] Promise对象
|
|
* @params pathList Array(String || Object[String]) 需要上传到oss的文件列表
|
|
* @params fileType String 上传到oss的文件类型,如:image、video
|
|
* 图片上传调用:let imageList = await dispose(res.tempFilePaths, 'image');
|
|
* 视频上传调用:let videoList = await dispose([res.tempFilePath], 'video');
|
|
*/
|
|
export async function dispose(pathList = [], fileType = 'image'){
|
|
// let ossResult = await getOssToken(); // 获取oss权限
|
|
// let oss = ossResult.data;
|
|
var cos = new COS({
|
|
SecretId: 'AKIDpTqypPiqiKgkX3HEvKSJuEH3YnkQpzsU', // 获取的密钥id
|
|
SecretKey: 'MSHo43mEOHuGL9gxwe5GAm7C0WlkSt2u', // 获取的密钥key
|
|
});
|
|
|
|
let premiseList = [];
|
|
pathList.map((item, index) => {
|
|
let promiseItem = new Promise((resolve, reject) => {
|
|
let tiemr = new Date();
|
|
let ext = getFileExtendingName(item.url || item.tempFilePath || item);
|
|
// let nameStr = oss.dir + tiemr.getTime() + index + ext;
|
|
let nameStr = tiemr.getTime() + index + ext;
|
|
|
|
cos.postObject({ // 真正上传文件的函数
|
|
Bucket: 'qkx-1257637852', // 自己刚才创建的桶名称
|
|
Region: 'ap-nanjing', // 地域 一般都是ap-...
|
|
Key: nameStr, // 上传的cos时,起一个别名
|
|
FilePath: item.url || item.tempFilePath || item, // 要上传的文件
|
|
// onProgress: function (info) {
|
|
// console.log(JSON.stringify(info)); // 进度条
|
|
// }
|
|
}, function (err, data) {
|
|
if(err){
|
|
reject(err)
|
|
}else{
|
|
resolve({...item, url: 'https://'+ data.Location});
|
|
}
|
|
});
|
|
|
|
|
|
// uni.uploadFile({
|
|
// url: oss.host,
|
|
// filePath: item.tempFilePath || item,
|
|
// name: 'file',
|
|
// fileType,
|
|
// formData: {
|
|
// 'key': nameStr,
|
|
// "OSSAccessKeyId": oss.accessid,
|
|
// "policy": oss.policy,
|
|
// "Signature": oss.signature,
|
|
// "success_action_status": 200,
|
|
// },
|
|
// success: result => {
|
|
// if (result.statusCode == 200) {
|
|
// let fileUrl = oss.host + '/' + nameStr;
|
|
// resolve(fileUrl);
|
|
// }else{
|
|
// reject(result);
|
|
// }
|
|
// },
|
|
// fail: err => {
|
|
// reject(err);
|
|
// }
|
|
// })
|
|
})
|
|
premiseList.push(promiseItem);
|
|
});
|
|
|
|
return Promise.all(premiseList);
|
|
}
|
|
|
|
// 获取文件后缀
|
|
function getFileExtendingName(filename){
|
|
var reg = /\.[^\.]+$/;
|
|
var matches = reg.exec(filename);
|
|
if (matches) {
|
|
return matches[0];
|
|
}
|
|
return '';
|
|
}
|