fix: OSS客户端直传
This commit is contained in:
@@ -2,22 +2,67 @@ import { requestClient } from '#/api/request';
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @param data
|
||||
* 通过后端服务器上传文件到OSS
|
||||
*
|
||||
* @param data 上传数据,包含file字段(文件对象)
|
||||
* @returns Promise 返回上传结果,包含url字段(文件URL)
|
||||
*/
|
||||
export async function uploadFile(data: any) {
|
||||
return requestClient.upload('upload/image', data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传 - 聊天信息
|
||||
* @param data
|
||||
* 用于聊天场景的文件上传
|
||||
*
|
||||
* @param data 上传数据,包含file字段(文件对象)
|
||||
* @returns Promise 返回上传结果,包含url字段(文件URL)
|
||||
*/
|
||||
export async function uploadChatFile(data: any) {
|
||||
return requestClient.upload('upload/chat-file', data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取OSS上传签名信息
|
||||
*
|
||||
* 该接口用于获取OSS直传所需的签名信息,包括:
|
||||
* - accessKeyId: 阿里云访问密钥ID
|
||||
* - policy: Base64编码的上传策略
|
||||
* - signature: 签名值
|
||||
* - host: OSS服务端点URL
|
||||
* - bucket: 存储桶名称(从后端环境变量获取,返回给前端)
|
||||
* - key: 文件路径前缀
|
||||
* - expire: 签名过期时间戳
|
||||
*
|
||||
* 使用场景:
|
||||
* - 前端需要直接上传文件到OSS时,先调用此接口获取签名
|
||||
* - 签名具有时效性,需要在有效期内使用
|
||||
* - 每次上传前建议重新获取签名,确保签名未过期
|
||||
*
|
||||
* 错误处理:
|
||||
* - 如果后端返回错误,会通过requestClient的统一错误处理机制处理
|
||||
* - 调用方需要捕获异常并进行相应处理
|
||||
*
|
||||
* @returns Promise<OssSignature> 返回OSS签名信息对象
|
||||
* @throws 如果API调用失败,会抛出错误
|
||||
*
|
||||
* @example
|
||||
* try {
|
||||
* const signature = await getOssSignature();
|
||||
* console.log('获取签名成功', signature);
|
||||
* } catch (error) {
|
||||
* console.error('获取签名失败', error);
|
||||
* }
|
||||
*/
|
||||
export async function getOssSignature() {
|
||||
return requestClient.get('/upload/oss-signature');
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过文件id集合获取文件信息
|
||||
* @param data
|
||||
*
|
||||
* @param data 请求数据,包含fileInfoIds字段(文件ID数组或逗号分隔的字符串)
|
||||
* @returns Promise 返回文件信息数组
|
||||
*/
|
||||
export async function getFileInfoByIds(data: any) {
|
||||
return requestClient.post('/sys/fileInfo/getFileInfoByIds', data);
|
||||
|
||||
Reference in New Issue
Block a user