From d20dfd8a267dde5589a8845604c2d4445be01a1b Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Mon, 30 Sep 2024 09:03:19 +0800 Subject: [PATCH] =?UTF-8?q?oss=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/oss/utils/FileStorageUtil.java | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java index bf0814365..0679c1464 100644 --- a/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java +++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java @@ -8,12 +8,14 @@ import com.njcn.minioss.config.MinIossProperties; import com.njcn.minioss.util.MinIoUtils; import com.njcn.oss.constant.GeneralConstant; import com.njcn.oss.enums.OssResponseEnum; -import io.minio.MinioClient; -import io.minio.PutObjectArgs; +import io.minio.*; +import io.minio.errors.*; +import io.minio.messages.Item; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.http.MediaType; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -22,6 +24,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStream; import java.io.InputStream; import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; /** @@ -116,7 +120,7 @@ public class FileStorageUtil { public String uploadStream(InputStream inputStream, String dir, String fileName) { String filePath; if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) { - filePath = dir + minIoUtils.minFileName(fileName,true); + filePath = dir + minIoUtils.minFileName(fileName); obsUtil.uploadStream(inputStream, filePath); } else { try { @@ -263,5 +267,33 @@ public class FileStorageUtil { inputStream.close(); return new MinIoUploadResDTO(minFileName, minIoUtils.getObjectUrl(bucketName, minFileName, 60)); } + /** + * @Description: getAllFile 获取minio指定文件夹下所有文件 + * @Param: + * @return: java.lang.Iterable> + * @Author: clam + * @Date: 2024/9/27 + */ + public List getAllFile(String bucketName, String directory) throws Exception{ + List files = new ArrayList<>(); + Iterable> results = this.instance.listObjects( + ListObjectsArgs.builder().bucket(bucketName).prefix(directory).recursive(true).build()); + + for (Result result : results) { + Item item = null; + + item = result.get(); + InputStream stream = this.instance.getObject( + GetObjectArgs.builder().bucket(bucketName).object(item.objectName()).build()); + + + + // 假设你有一个方法可以将InputStream转换为MultipartFile + MultipartFile multipartFile = new MockMultipartFile(item.objectName(), item.objectName(), "text/plain", stream); + files.add(multipartFile); + } + return files; + } + }