Files
xiaomubiao-master/src/api/media.ts
2026-05-22 16:13:20 +08:00

85 lines
2.5 KiB
TypeScript

import req from './http/request'
// 上传图片到 MinIO
export const uploadImageToMinio = async (
file: File,
businessType: string,
fileName: string,
originalId?: string
) => {
const form = new FormData()
form.append('file', file)
form.append('businessType', businessType)
form.append('fileName', fileName)
if (originalId) form.append('originalId', String(originalId))
return await req.post('/api/v1/file/upload/image', form, {
headers: { 'Content-Type': 'multipart/form-data' }
})
}
// 删除图片(按文件名)
export const deleteImageFromMinio = async (
fileName: string,
originalId?: string
) => {
return await req.delete('/api/v1/file/image', {
data: { fileName, originalId }
})
}
// 覆盖更新图片内容
export const updateImageInMinio = async (
fileName: string,
businessType: string,
file: File,
originalId?: string
) => {
const form = new FormData()
form.append('fileName', fileName)
form.append('businessType', businessType)
form.append('file', file)
if (originalId) form.append('originalId', String(originalId))
return await req.put('/api/v1/file/image', form, {
headers: { 'Content-Type': 'multipart/form-data' }
})
}
// 获取图片可访问URL
export const getImageUrlFromMinio = async (
fileName: string,
businessType: string
) => {
return await req.get('/api/v1/file/image/url', {
params: {
fileName,
businessType
}
})
}
/*
* @Author: gejia 905034981@qq.com
* @Date: 2024-03-30 14:06:44
* @LastEditors: gejia 905034981@qq.com
* @LastEditTime: 2024-11-07 13:36:40
* @FilePath: \redfly-web\src\api\media.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import request, { IPage, IWorkspaceResponse } from './http/request';
import type { IfileParams } from './d.ts/media'
const HTTP_PREFIX = '/media/api/v1';
//获取文件列表
export const getFileList = async function (wid: string, pagination: IPage, params: IfileParams): Promise<IWorkspaceResponse<any>> {
const url = `${HTTP_PREFIX}/files/${wid}/files/getFilePage?page=${pagination.page}&page_size=${pagination.page_size}`;
// const result = await request.get(url)
return request.get(url, { params });
};
//修改文件相应的参数
export const updateFile = async function (wid: string, id: string, params: IfileParams): Promise<IWorkspaceResponse<any>> {
const url = `${HTTP_PREFIX}/files/${wid}/files/updateFile/${id}`;
return request.put(url, params);
};