吉媒互动平台前端
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.
 
 
 
 
 

73 lines
2.5 KiB

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