From 14821e28286d773ad5ff2c13510e39c5eb117daf Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期五, 05 七月 2024 13:46:32 +0800
Subject: [PATCH] update

---
 exam-common/src/main/java/com/gkhy/exam/common/utils/MinioUtils.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 55 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 94aa256..b350ebc 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,9 @@
 import com.gkhy.exam.common.config.MinioConfig;
 import io.minio.*;
 import io.minio.http.Method;
+import io.minio.messages.DeleteError;
+import io.minio.messages.DeleteObject;
+import io.minio.messages.Item;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -15,7 +18,9 @@
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Component
 @Slf4j
@@ -45,10 +50,16 @@
      * @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);
+    public String fileUploader( String fileName, InputStream stream) {
+        try {
+            PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).stream(stream, stream.available(), -1).contentType("application/octet-stream").build();
+            // 使用putObject上传一个文件到文件分类
+            minioClient.putObject(objectArgs);
+        }catch (Exception e) {
+            log.error("minio上传文件失败:{}",e.getMessage());
+            return null;
+        }
+        return fileName;
     }
 
 
@@ -89,7 +100,7 @@
             String url = minioClient.getPresignedObjectUrl(build);
             return url;
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("预览文件失败:{}",e.getMessage());
         }
         return null;
     }
@@ -141,4 +152,43 @@
             return false;
         }
     }
+
+
+    /**
+     * 删除文件夹
+     * @param folderName
+     * @return
+     */
+    public boolean removeFolder(String folderName){
+        try {
+            if(!folderName.endsWith("/")){
+                folderName=folderName+"/";
+            }
+            ListObjectsArgs listObjectsArgs=ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).prefix(folderName).build();
+
+            Iterable<Result<Item>> results = minioClient.listObjects(listObjectsArgs);
+            List<DeleteObject> objectNames=new ArrayList<>();
+            for(Result<Item> result:results){
+                objectNames.add(new DeleteObject(result.get().objectName()));
+            }
+            if(!objectNames.isEmpty()) {
+                RemoveObjectsArgs removeObjectsArgs = RemoveObjectsArgs.builder().bucket(minioConfig.getBucketName())
+                        .objects(objectNames).build();
+                Iterable<Result<DeleteError>> results1 = minioClient.removeObjects(removeObjectsArgs);
+                for (Result<DeleteError> result : results1) {
+                    DeleteError error = result.get();
+                    log.error("Error in deleting object {},{}", error.objectName(), error.message());
+                }
+            }
+            RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket(minioConfig.getBucketName())
+                    .object(folderName).build();
+            minioClient.removeObject(removeObjectArgs);
+            return true;
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+
+
 }

--
Gitblit v1.9.2