From b8d2c08d9e3f33f6a9996ac7b58cb75d23bbf28a Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Mon, 15 Jul 2024 13:16:42 +0800 Subject: [PATCH] =?UTF-8?q?nacos=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=88=B7=E5=8F=8A=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/system/api/domain/SysFile.java | 5 ++ .../bonus/system/api/domain/SysFileVo.java | 40 ++++++++++++++++ .../core/utils/global/SystemGlobal.java | 24 ++++++++++ bonus-common/bonus-common-entity/pom.xml | 20 ++++++++ bonus-common/pom.xml | 1 + .../file/controller/SysFileController.java | 47 +++++++++++++------ bonus-modules/bonus-mongodb/pom.xml | 2 +- bonus-modules/bonus-obs/pom.xml | 2 +- bonus-modules/pom.xml | 1 + 9 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java create mode 100644 bonus-common/bonus-common-entity/pom.xml diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java index 7ce7a89..340eddd 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java @@ -20,6 +20,11 @@ public class SysFile */ private String url; + + + + + public String getName() { return name; diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java new file mode 100644 index 0000000..d5eb292 --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java @@ -0,0 +1,40 @@ +package com.bonus.system.api.domain; + +import lombok.Data; + +/** + * 返回的文件进行统一封装 + * 无论是 mongodb还是 oss、还是本地存储 还是obs等 进行统一的 数据返回和文件上传 + */ +@Data +public class SysFileVo { + + private String file; + + private String fileId; + + private String fileName; + + private String contentType; + + private String suffix; + + private long fileSize; + + private String sourceId; + + private String id; + + private String fileType; + + private String sourceType; + + private String updaetTime; + + private byte[] data; + /** + *文件路径 + */ + private String url; + +} diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java index 93c3bf7..3917639 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java @@ -32,5 +32,29 @@ public class SystemGlobal { * POST 请求 */ public final static String POST="POST"; + /** + * PUT 请求 + */ + public final static String PUT="PUT"; + + /** + * 文件存储类型-local + */ + public final static String LOCAL="local"; + /** + * 文件存储类型-oss + */ + public final static String OSS="oss"; + + /** + * 文件存储类型-mongodb + */ + public final static String MONGODB="mongodb"; + + /** + * 文件存储类型-obs + */ + public final static String OBS="obs"; + } diff --git a/bonus-common/bonus-common-entity/pom.xml b/bonus-common/bonus-common-entity/pom.xml new file mode 100644 index 0000000..c5586b7 --- /dev/null +++ b/bonus-common/bonus-common-entity/pom.xml @@ -0,0 +1,20 @@ + + + + com.bonus + bonus-common + 24.6.0 + + 4.0.0 + + bonus-common-entity + + + bonus-common-entity + + + + + \ No newline at end of file diff --git a/bonus-common/pom.xml b/bonus-common/pom.xml index ac72fff..7b4eee7 100644 --- a/bonus-common/pom.xml +++ b/bonus-common/pom.xml @@ -18,6 +18,7 @@ bonus-common-sensitive bonus-common-datascope bonus-common-datasource + bonus-common-entity bonus-common diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java index 6729af6..81af54e 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java @@ -1,10 +1,13 @@ package com.bonus.file.controller; import com.bonus.common.core.utils.Base64Utils; +import com.bonus.common.core.utils.global.SystemGlobal; import com.bonus.file.utils.FileDownloadUtils; +import com.bonus.system.api.domain.SysFileVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -23,34 +26,48 @@ import java.io.IOException; * @author bonus */ @RestController -public class SysFileController -{ +public class SysFileController { private static final Logger log = LoggerFactory.getLogger(SysFileController.class); @Autowired private ISysFileService sysFileService; - + /** + * 存储文件 + */ + @Value("${file.save-type}") + public String saveType; /** * 文件上传请求 */ @PostMapping("upload") - public R upload(MultipartFile file) - { - try - { - // 上传并返回访问地址 - String url = sysFileService.uploadFile(file); - SysFile sysFile = new SysFile(); - sysFile.setName(FileUtils.getName(url)); - sysFile.setUrl(url); - return R.ok(sysFile); + public R upload(MultipartFile file) { + try { + if(saveType.equals(SystemGlobal.LOCAL)){ + SysFileVo fileVo= uploadByLocal(file); + return R.ok(fileVo); + }else {//默认本地存储 + SysFileVo fileVo= uploadByLocal(file); + return R.ok(fileVo); + } } - catch (Exception e) - { + catch (Exception e) { log.error("上传文件失败", e); return R.fail(e.getMessage()); } } + /** + * 本地文件上传 + * @return + */ + public SysFileVo uploadByLocal(MultipartFile file) throws Exception { + // 上传并返回访问地址 + String url = sysFileService.uploadFile(file); + SysFileVo sysFile = new SysFileVo(); + sysFile.setFileName(FileUtils.getName(url)); + sysFile.setUrl(url); + return sysFile; + } + @GetMapping("/download") public R downloadFile(String url, String destination) { diff --git a/bonus-modules/bonus-mongodb/pom.xml b/bonus-modules/bonus-mongodb/pom.xml index 4bd21f0..0fbf34d 100644 --- a/bonus-modules/bonus-mongodb/pom.xml +++ b/bonus-modules/bonus-mongodb/pom.xml @@ -9,7 +9,7 @@ 24.6.0 - bonus-modules-mongodb + bonus-mongodb 8 diff --git a/bonus-modules/bonus-obs/pom.xml b/bonus-modules/bonus-obs/pom.xml index f229be7..bad868d 100644 --- a/bonus-modules/bonus-obs/pom.xml +++ b/bonus-modules/bonus-obs/pom.xml @@ -9,7 +9,7 @@ 24.6.0 - bonus-modules-obs + bonus-obs bonus-modules-obs存储服务 diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml index ef93e49..a33012c 100644 --- a/bonus-modules/pom.xml +++ b/bonus-modules/pom.xml @@ -14,6 +14,7 @@ bonus-job bonus-file bonus-oss + app bonus-modules