import request from '@/utils/request/request' import urlRequest from '@/utils/request' import storage from '@/utils/storage' import dayjs from "dayjs" const ossRequest = new request({ // 接口请求地址 baseUrl: 'https://server.jimeigroup.cn/api/', // 服务器本地上传文件地址 fileUrl: 'https://server.jimeigroup.cn/api/', // 服务器上传图片默认url defaultUploadUrl: 'upload/image', // 设置请求头(如果使用报错跨域问题,可能是content-type请求类型和后台那边设置的不一致) header: { 'content-type': 'application/json;charset=utf-8' }, // 请求超时时间, 单位ms(默认15000) timeout: 15000, // 默认配置(可不写) config: { // 是否自动提示错误 isPrompt: true, // 是否显示加载动画 load: true, // 是否使用数据工厂 isFactory: true } }) export const ossUploadFile = async (file) => { console.log(file) // 获取临时凭证 let sts = storage.get('sts'); if (!sts) { const stsRes = await ossRequest.get('oss/getPostForm') sts = stsRes.data.data storage.set('sts', sts, 60) } const {polocyBase64, signature} = sts; var suffix = file.name.substring(file.name.lastIndexOf(".")); const fileName = dayjs().format('YYYYMMDD') + '/' + uni.$u.guid() + suffix; return new Promise((reso, rej) => { uni.uploadFile({ url: 'https://oss.jimeigroup.cn', // 开发者服务器的URL。 filePath: file.path, name: 'file', // 必须填file。 formData: { key: fileName, 'policy': polocyBase64, 'OSSAccessKeyId': 'LTAI5t8UTh8CTXEi2dYxobhj', 'success_action_status': '200', //让服务端返回200,不然,默认会返回204 'signature': signature, // 'x-oss-security-token': this.stsToken, }, success: () => { urlRequest.post('upload/addFile', { storage: 'aliyun', domain: 'https://oss.jimeigroup.cn', file_name: file.name, file_path: fileName, file_size: file.size, file_ext: suffix }).then(res => { reso(res) }) }, fail: err => { rej(err) } }); }) }