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