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