mirror of
https://gitee.com/lijingbo-2021/open-anylink-web.git
synced 2026-05-14 19:27:52 +00:00
94 lines
2.9 KiB
JavaScript
94 lines
2.9 KiB
JavaScript
import request from '@/js/utils/request'
|
||
|
||
export const mtsUploadServiceForImage = async (requestBody, { originFile, thumbFile }) => {
|
||
const res = await request.postForm('/mts/getUploadUrl', requestBody)
|
||
const scope = res.data.data.scope
|
||
const objectId = res.data.data.objectId
|
||
const originUrl = res.data.data.originUrl
|
||
const thumbUrl = res.data.data.thumbUrl
|
||
if (scope === 1 && originUrl && thumbUrl) {
|
||
// 如果文件之前已经上传过,直接获取下载地址
|
||
return res
|
||
} else {
|
||
const uploadOriginUrl = res.data.data.uploadOriginUrl
|
||
const uploadThumbUrl = res.data.data.uploadThumbUrl
|
||
// 2 上传原图
|
||
const originResponse = await fetch(uploadOriginUrl, {
|
||
method: 'PUT',
|
||
body: originFile,
|
||
headers: {
|
||
'Content-Type': originFile.type || 'application/octet-stream' // 设置 Content-Type
|
||
}
|
||
})
|
||
|
||
if (!originResponse.ok) {
|
||
throw new Error('原图上传失败')
|
||
}
|
||
|
||
// 3 上传缩略图,如果原图和缩略图一样,就不上传
|
||
if (uploadThumbUrl !== uploadOriginUrl) {
|
||
const thumbResponse = await fetch(uploadThumbUrl, {
|
||
method: 'PUT',
|
||
body: thumbFile,
|
||
headers: {
|
||
'Content-Type': thumbFile.type || 'application/octet-stream' // 设置 Content-Type
|
||
}
|
||
})
|
||
|
||
if (!thumbResponse.ok) {
|
||
throw new Error('缩略图上传失败')
|
||
}
|
||
}
|
||
|
||
// 4 上报服务端上传成功,服务端返回预签名下载URL
|
||
const reportResponse = await request.postForm('/mts/reportUploaded', { objectId })
|
||
return reportResponse
|
||
}
|
||
}
|
||
|
||
export const mtsUploadService = async (requestBody, { originFile }) => {
|
||
// 1 获取上传的预签名URL
|
||
const res = await request.postForm('/mts/getUploadUrl', requestBody)
|
||
const scope = res.data.data.scope
|
||
const objectId = res.data.data.objectId
|
||
const downloadUrl = res.data.data.downloadUrl
|
||
if (scope === 1 && downloadUrl) {
|
||
// 如果文件之前已经上传过,直接过的下载地址
|
||
return res
|
||
} else {
|
||
const uploadUrl = res.data.data.uploadUrl
|
||
// 2 上传文件
|
||
const uploadResponse = await fetch(uploadUrl, {
|
||
method: 'PUT',
|
||
body: originFile,
|
||
headers: {
|
||
'Content-Type': originFile.type || 'application/octet-stream' // 设置 Content-Type
|
||
}
|
||
})
|
||
|
||
if (!uploadResponse.ok) {
|
||
throw new Error('文件上传失败')
|
||
}
|
||
|
||
// 3 上报服务端上传成功,服务端返回预签名下载URL
|
||
const reportResponse = await request.postForm('/mts/reportUploaded', { objectId })
|
||
return reportResponse
|
||
}
|
||
}
|
||
|
||
export const mtsImageService = (obj) => {
|
||
return request.get('/mts/image', { params: obj })
|
||
}
|
||
|
||
export const mtsAudioService = (obj) => {
|
||
return request.get('/mts/audio', { params: obj })
|
||
}
|
||
|
||
export const mtsVideoService = (obj) => {
|
||
return request.get('/mts/video', { params: obj })
|
||
}
|
||
|
||
export const mtsDocumentService = (obj) => {
|
||
return request.get('/mts/document', { params: obj })
|
||
}
|