2025-04-25 13:01:19 +08:00
|
|
|
|
import cos from '@/utils/cos' // 您已有的COS实例
|
|
|
|
|
|
import {
|
|
|
|
|
|
getToken
|
|
|
|
|
|
} from '@/utils/auth'
|
|
|
|
|
|
import {
|
|
|
|
|
|
toast
|
|
|
|
|
|
} from '@/utils/common'
|
2025-03-18 17:41:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-04-25 13:01:19 +08:00
|
|
|
|
const upload = async (config) => {
|
|
|
|
|
|
try {
|
|
|
|
|
|
console.log('config', config);
|
|
|
|
|
|
// 生成文件名(避免中文乱码)
|
|
|
|
|
|
const fileName = '/images/' + config.filePath.split('/').pop(); // 提取最后一段路径
|
|
|
|
|
|
const data = await cos.uploadFile({
|
|
|
|
|
|
Bucket: 'notice-1348525010', // 填写自己的 bucket,必须字段
|
|
|
|
|
|
Region: 'ap-beijing', // 存储桶所在地域,必须字段
|
|
|
|
|
|
Key: fileName,
|
|
|
|
|
|
FilePath: config.filePath,
|
|
|
|
|
|
/* v1.4.3之前的版本必须,v1.4.3及以后的版本非必须 */
|
|
|
|
|
|
SliceSize: 1024 * 1024 * 5, // 触发分块上传的阈值,超过5MB 使用分块上传,小于5MB使用简单上传。可自行设置,非必须
|
|
|
|
|
|
onProgress: function(progressData) {
|
|
|
|
|
|
console.log('上传进度:', progressData);
|
|
|
|
|
|
},
|
|
|
|
|
|
// onTaskReady: function(id) { // 非必须
|
|
|
|
|
|
// taskId = id;
|
|
|
|
|
|
// },
|
|
|
|
|
|
});
|
|
|
|
|
|
console.log('上传成功', data);
|
|
|
|
|
|
// 上传成功
|
|
|
|
|
|
const fileUrl = `https://${data.Location}`;
|
|
|
|
|
|
return {
|
|
|
|
|
|
url: fileUrl,
|
|
|
|
|
|
fileName: fileUrl
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
console.error('上传失败', e);
|
|
|
|
|
|
}
|
2025-03-18 17:41:45 +08:00
|
|
|
|
}
|
2025-04-25 13:01:19 +08:00
|
|
|
|
// 明确导出类型
|
|
|
|
|
|
export default upload
|