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