知识库文档上传同时备份至OSS服务器
This commit is contained in:
@@ -6,6 +6,8 @@ import com.gxwebsoft.ai.config.KnowledgeBaseConfig;
|
||||
import com.gxwebsoft.ai.factory.KnowledgeBaseClientFactory;
|
||||
import com.gxwebsoft.ai.util.AiCloudDataCenterUtil;
|
||||
import com.gxwebsoft.ai.util.AiCloudKnowledgeBaseUtil;
|
||||
import com.gxwebsoft.common.system.controller.FileController;
|
||||
import com.gxwebsoft.common.system.entity.FileRecord;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@@ -56,6 +58,9 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
||||
@Resource
|
||||
private KnowledgeBaseService knowledgeBaseService;
|
||||
|
||||
@Resource
|
||||
private FileController fileController;
|
||||
|
||||
@Override
|
||||
public PageResult<AiCloudFile> pageRel(AiCloudFileParam param) {
|
||||
PageParam<AiCloudFile, AiCloudFileParam> page = new PageParam<>(param);
|
||||
@@ -92,6 +97,8 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
||||
AddFileResponse addFileResponse = AiCloudDataCenterUtil.uploadFile(client, workspaceId, categoryId, file);
|
||||
String fileId = addFileResponse.getBody().getData().getFileId();
|
||||
|
||||
FileRecord fileRecord = fileController.upload(file, loginUser.getTenantId());
|
||||
|
||||
// 保存文件信息到数据库
|
||||
AiCloudFile aiCloudFile = new AiCloudFile();
|
||||
aiCloudFile.setDocId(docId);
|
||||
@@ -100,6 +107,7 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
||||
aiCloudFile.setFileType(getFileExtension(file.getOriginalFilename()));
|
||||
aiCloudFile.setFileExt(getFileExtension(file.getOriginalFilename()));
|
||||
aiCloudFile.setFileId(fileId);
|
||||
aiCloudFile.setFileUrl(fileRecord.getDownloadUrl());
|
||||
aiCloudFile.setUploadTime(LocalDateTime.now());
|
||||
aiCloudFile.setWorkspaceId(workspaceId);
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.gxwebsoft.common.system.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.gxwebsoft.common.core.annotation.OperationLog;
|
||||
import com.gxwebsoft.common.core.config.ConfigProperties;
|
||||
@@ -316,4 +319,23 @@ public class FileController extends BaseController {
|
||||
return fail("修改失败");
|
||||
}
|
||||
|
||||
public FileRecord upload(MultipartFile file, Integer tenantId) {
|
||||
FileRecord fileRecord = new FileRecord();
|
||||
if (file == null || file.isEmpty()) {
|
||||
return fileRecord;
|
||||
}
|
||||
try {
|
||||
String requestURL = config.getServerUrl() + "/oss/upload";
|
||||
String response = HttpRequest.post(requestURL)
|
||||
.header("Tenantid", tenantId != null ? tenantId.toString() : getTenantId().toString())
|
||||
.form("file", file.getBytes(), file.getOriginalFilename())
|
||||
.execute()
|
||||
.body();
|
||||
JSONObject data = JSONObject.parseObject(response).getJSONObject("data");
|
||||
fileRecord = data != null ? BeanUtil.copyProperties(data, FileRecord.class) : fileRecord;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return fileRecord;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user