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 '';
							 | 
						|
								}
							 |