Files
open-anylink-web/src/api/mts.js
2025-04-16 09:28:57 +08:00

94 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 })
}