parent
e2a9835a5f
commit
818dc4d8e3
@ -10,7 +10,9 @@ export interface FilePageReqVO extends PageParam {
|
||||
export interface FilePresignedUrlRespVO {
|
||||
// 文件配置编号
|
||||
configId: number
|
||||
// 文件预签名地址
|
||||
// 文件上传 URL
|
||||
uploadUrl: string
|
||||
// 文件 URL
|
||||
url: string
|
||||
}
|
||||
|
||||
|
@ -19,11 +19,11 @@ export const useUpload = () => {
|
||||
// 1.2 获取文件预签名地址
|
||||
const presignedInfo = await FileApi.getFilePresignedUrl(fileName)
|
||||
// 1.3 上传文件(不能使用ElUpload的ajaxUpload方法的原因:其使用的是FormData上传,Minio不支持)
|
||||
return axios.put(presignedInfo.url, options.file).then(() => {
|
||||
return axios.put(presignedInfo.uploadUrl, options.file).then(() => {
|
||||
// 1.4. 记录文件信息到后端
|
||||
const fileVo = createFile(presignedInfo.configId, fileName, presignedInfo.url, options.file)
|
||||
createFile(presignedInfo, fileName, options.file)
|
||||
// 通知成功,数据格式保持与后端上传的返回结果一致
|
||||
return { data: fileVo.url }
|
||||
return { data: presignedInfo.url }
|
||||
})
|
||||
} else {
|
||||
// 模式二:后端上传(需要增加后端身份认证请求头)
|
||||
@ -42,17 +42,15 @@ export const useUpload = () => {
|
||||
|
||||
/**
|
||||
* 创建文件信息
|
||||
* @param configId 文件配置编号
|
||||
* @param vo 文件预签名信息
|
||||
* @param name 文件名称
|
||||
* @param url 文件地址
|
||||
* @param file 文件
|
||||
*/
|
||||
function createFile(configId: number, name: string, url: string, file: UploadRawFile) {
|
||||
function createFile(vo: FileApi.FilePresignedUrlRespVO, name: string, file: UploadRawFile) {
|
||||
const fileVo = {
|
||||
configId: configId,
|
||||
configId: vo.configId,
|
||||
url: vo.url,
|
||||
path: name,
|
||||
// 移除预签名参数:参数只在上传时有用,查看时不需要
|
||||
url: url.substring(0, url.indexOf('?')),
|
||||
name: file.name,
|
||||
type: file.type,
|
||||
size: file.size
|
||||
|
Loading…
Reference in New Issue
Block a user