UNPKG

capacitor-cos-plugin

Version:
86 lines (77 loc) 2.44 kB
# capacitor-cos-plugin 腾讯cos上传插件 #### 插件安装 ``` npm i capacitor-cos-plugin --save npx cap sync ``` #### web接口 ``` 需要服务端提供接口返回一个临时授权信息,具体如何使用参考腾讯cos文档 CosPlugin.upload(options: { signOptions:{ region:string, //区域 secretId:string, //临时secretId secretKey:string, // 临时key sessionToken:string, startTime:number, expiredTime:number, //签名过期时间,过期之后要重新请求签名 sliceSize:number, //分片大小 isHttps:boolean //是否使用https传输 }, bucket:string, //存储桶 cosUrl:string, //cos 自定义的cdn访问路径,如果无可传空 cosPath:string, //cos上的存储路径 localPath:string //本地文件路径 }): Promise<{usr:string}> ; 成功返回上传成功后的文件路径 {url:string} ``` #### 使用示例 ``` import 'capacitor-cos-plugin' import { Plugins} from '@capacitor/core' const { CosPlugin} = Plugins import { getCosSign } from '@/api/app' //获取cos临时签名的接口 let cosSignData = {} // cos签名 export default { async uploadToCos(localPath) { const filename = `${localPath.slice(localPath.lastIndexOf('/') + 1)}` const expiredTime = cosSignData.expiredTime || 0 try { if (expiredTime < Date.now() / 1000) { //签名过期之后重新获取 const data = await getCosSign() if (data.hasOwnProperty('credentials')) { cosSignData = data } } } catch (e) { this.$log(e) } const sign = cosSignData.credentials || {} const options = { signOptions: { region: process.env.NODE_ENV === 'production' ? 'ap-guangzhou' : 'ap-guangzhou', secretId: sign.tmpSecretId, secretKey: sign.tmpSecretKey, sessionToken: sign.sessionToken, startTime: cosSignData.startTime, expiredTime: cosSignData.expiredTime, sliceSize: 1024, isHttps: true }, bucket: 'xxxx', cosPath: 'test/' + filename, localPath } return new Promise((resolve, reject) => { CosPlugin.upload(options).then((data) => { console.log('文件路径为:'+data.url) resolve() }, error => { reject() }) }) } } ```