From daf7acb4f107a427e4a83ba1eb26e5e6012cbdaf Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期三, 26 六月 2024 17:04:52 +0800
Subject: [PATCH] update

---
 exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java |   41 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java b/exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java
index 83c85e2..94aa256 100644
--- a/exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java
+++ b/exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java
@@ -6,6 +6,7 @@
 import com.gkhy.exam.common.config.MinioConfig;
 import io.minio.*;
 import io.minio.http.Method;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.FastByteArrayOutputStream;
@@ -13,9 +14,11 @@
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
 import java.util.Date;
 
 @Component
+@Slf4j
 public class MinioUtils {
     @Autowired
     private MinioClient minioClient;
@@ -27,15 +30,27 @@
      * @return boolean
      */
     public Boolean bucketExists(String bucketName) {
-        Boolean found;
+        Boolean found=false;
         try {
             found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
         } catch (Exception e) {
-            e.printStackTrace();
-            return false;
+            log.error("minio校验bucket失败:{}",e.getMessage());
         }
         return found;
     }
+
+    /**
+     * 文件上传 上传完成后请关闭文件流
+     *
+     * @param fileName 带后缀的文件名 检验日期yyyyMMdd加16位随机码
+     * @param stream   文件流 要上传文件的流
+     */
+    public void fileUploader( String fileName, InputStream stream) throws Exception {
+        PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).stream(stream,-1,-1).contentType("application/octet-stream").build();
+        // 使用putObject上传一个文件到文件分类
+        minioClient.putObject(objectArgs);
+    }
+
 
     /**
      * 文件上传
@@ -43,7 +58,7 @@
      * @param file 文件
      * @return Boolean
      */
-    public String upload(MultipartFile file) {
+    public String uploadFile(MultipartFile file) {
         String originalFilename = file.getOriginalFilename();
         if (StringUtils.isBlank(originalFilename)){
             throw new RuntimeException();
@@ -56,7 +71,7 @@
             //文件名称相同会覆盖
             minioClient.putObject(objectArgs);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("minio上传文件失败:{}",e.getMessage());
             return null;
         }
         return objectName;
@@ -110,4 +125,20 @@
             e.printStackTrace();
         }
     }
+
+    /**
+     * 删除文件
+     * @param fileName
+     * @return
+     */
+    public boolean removeFile(String fileName){
+        try {
+            RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket(minioConfig.getBucketName())
+                    .object(fileName).build();
+            minioClient.removeObject(removeObjectArgs);
+            return true;
+        }catch (Exception e){
+            return false;
+        }
+    }
 }

--
Gitblit v1.9.2