From f0f00e9ba8a755e4317e029d73b69a92ad9f9df1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Sat, 14 Sep 2024 17:02:41 +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