From 71fbf2ad1b630f1dd4bbd1f0049d2aca87aad424 Mon Sep 17 00:00:00 2001
From: hjx <577364224@qq.com>
Date: Wed, 10 Dec 2025 22:31:22 +0800
Subject: [PATCH] =?UTF-8?q?minio=E5=AF=B9=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mhd-common/mhd-common-core/pom.xml | 6 +
.../main/java/minio/MinIoUploadService.java | 116 ++++++++++++++++++
.../service/menu/MenuApplicationService.java | 11 ++
mhd_transport/pom.xml | 12 ++
4 files changed, 145 insertions(+)
create mode 100644 mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java
diff --git a/mhd-common/mhd-common-core/pom.xml b/mhd-common/mhd-common-core/pom.xml
index 20fd35e39..c023cacc6 100644
--- a/mhd-common/mhd-common-core/pom.xml
+++ b/mhd-common/mhd-common-core/pom.xml
@@ -180,6 +180,12 @@
3.3.2
compile
+
+ io.minio
+ minio
+ 8.5.2
+ compile
+
diff --git a/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java b/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java
new file mode 100644
index 000000000..b1960dceb
--- /dev/null
+++ b/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java
@@ -0,0 +1,116 @@
+package minio;
+
+import com.aliyun.oss.ServiceException;
+import io.minio.MinioClient;
+import io.minio.PutObjectArgs;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.util.UriUtils;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+public class MinIoUploadService {
+ @Autowired
+ private MinioClient minioClient;
+ private static String bucket="ngwl";
+ private static String host="http://10.102.192.5:6001/";
+ private static String accessKey="minioadmin";
+ private static String secretKey="gmminioadmin";
+ /**
+ * minio 工具客户端
+ */
+ private static MinioClient minioClient1 = null;
+
+ private static String FILE_URL;
+
+ /**
+ * 上传到minio
+ * @param fileName
+ * @throws Exception
+ */
+
+ public boolean uploadFileToMinIo(MultipartFile multipartFile, String fileName) {
+ try {
+ initMinio();
+ InputStream inputStream = multipartFile.getInputStream();
+ PutObjectArgs putObjectArgs = PutObjectArgs.builder()
+ .object(fileName)//文件名
+ .bucket(bucket)//桶名词 与minio创建的名词一致
+ // fileInputStream.available() 表示一直有内容就会上传 -1 表示将所有的相关文件的内容都上传
+ .stream(inputStream, inputStream.available(), -1) //文件流
+ .build();
+ minioClient.putObject(putObjectArgs);
+ return true;
+ }catch (Exception e){
+ //log.error(e.getMessage(),e);
+ }
+ return false;
+ }
+ private MinioClient initMinio() {
+ try{
+ MinioClient minioClient = MinioClient.builder()
+ .endpoint(host)
+ .credentials(accessKey, secretKey)
+ .build();
+ return minioClient;
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ return minioClient;
+ }
+
+ /**
+ * 上传文件
+ * 文件上传成功,返回文件完整访问路径
+ * 文件上传失败,返回 null
+ *
+ * @param multipartFile 待上传文件
+ * @param fileDir 文件保存目录
+ * @return oss 中的相对文件路径
+ */
+ /* public static String upload(MultipartFile multipartFile, String fileDir) {
+
+
+ try (InputStream inputStream = multipartFile.getInputStream()) {
+ //初始化minio
+ initMinio();
+ // bucket 不存在,创建
+ if (!minioClient1.bucketExists(bucket)) {
+ minioClient1.makeBucket(bucket);
+ }
+ // 上传文件的名称
+ String fileName = multipartFile.getOriginalFilename();
+ long timestamp = Calendar.getInstance().getTimeInMillis();
+ // PutObjectOptions,上传配置(文件大小,内存中文件分片大小)
+// PutObjectOptions putObjectOptions = new PutObjectOptions(multipartFile.getSize(), PutObjectOptions.MIN_MULTIPART_SIZE);
+// // 文件的ContentType
+// putObjectOptions.setContentType(multipartFile.getContentType());
+
+ SimpleDateFormat sdYear = new SimpleDateFormat("yyyy");
+ SimpleDateFormat sdMonth = new SimpleDateFormat("MM");
+ SimpleDateFormat sdDay = new SimpleDateFormat("dd");
+ String year = sdYear.format(new Date());
+ String month = sdMonth.format(new Date());
+ String day = sdDay.format(new Date());
+ String filrDir = "wlhy/" + year + "/" + month + "/" + day + "/";
+
+// minioClient.putObject(bucket, filrDir+timestamp+fileName, inputStream, putObjectOptions);
+ minioClient1.putObject(bucket, filrDir+timestamp+fileName, inputStream, multipartFile.getContentType());
+ // 返回访问路径
+ String fileurl = host+ "/"+bucket + "/"+filrDir+timestamp+ UriUtils.encode(fileName, StandardCharsets.UTF_8);
+ System.out.println("fileurl===="+fileurl);
+ FILE_URL = fileurl;
+ return fileurl;
+ } catch (ServiceException e){
+ log.error(e.getErrorMessage());
+ } catch (Exception e){
+ log.error(e.getMessage());
+ }
+ return FILE_URL;
+ }*/
+}
diff --git a/mhd_product/src/main/java/com/linke/product/application/service/menu/MenuApplicationService.java b/mhd_product/src/main/java/com/linke/product/application/service/menu/MenuApplicationService.java
index 288b097e1..57d6d5b50 100644
--- a/mhd_product/src/main/java/com/linke/product/application/service/menu/MenuApplicationService.java
+++ b/mhd_product/src/main/java/com/linke/product/application/service/menu/MenuApplicationService.java
@@ -272,6 +272,17 @@ public class MenuApplicationService {
return ossService.uploadOss(file);
}
+ /**
+ * 上传文件到oss
+ *
+ * @param file 文件
+ * @return 文件路径
+ */
+ public String uploadMinio(File file)
+ {
+ return ossService.uploadOss(file);
+ }
+
/**
* 根据组织id查询菜单集合
*
diff --git a/mhd_transport/pom.xml b/mhd_transport/pom.xml
index 328497119..33822d0e4 100644
--- a/mhd_transport/pom.xml
+++ b/mhd_transport/pom.xml
@@ -101,6 +101,18 @@
org.springframework.cloud
spring-cloud-starter-sleuth
+
+ io.minio
+ minio
+ 8.4.3
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.8.1
+ compile
+
+
org.springframework.cloud