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.
40 lines
986 B
40 lines
986 B
// 阿里云oss上传 |
|
|
|
import OSS from 'ali-oss' |
|
import OssConfig from './config' |
|
import Util from '@/util' |
|
|
|
let client = null |
|
let Oss |
|
// 初始化oss |
|
const initOss = async () => { |
|
Oss = await OssConfig() |
|
if (!client) client = new OSS(Oss.config) |
|
} |
|
initOss() |
|
|
|
export default { |
|
// 上传文件 |
|
upload (file) { |
|
initOss() |
|
return new Promise(async (resolve, reject) => { |
|
try { |
|
// 上传到阿里云oss |
|
const res = await client.multipartUpload(Date.now() + '.' + Util.getFileExt(file.name), file); |
|
resolve({ |
|
format: Util.getFileExt(file.name), |
|
name: file.name, |
|
url: Oss.preUrl + res.name, |
|
size: file.size, |
|
}) |
|
} catch (error) { |
|
reject() |
|
} |
|
}) |
|
}, |
|
// 删除文件(传完整url,不是没有https的name,因为很多接口没有存name,只存url,所以统一使用url) |
|
async del (url) { |
|
initOss() |
|
await client.delete(url.replace(Oss.preUrl, '')); |
|
} |
|
}
|
|
|