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