From 3a8ae0e131cb5fcccfaddb21503acddb3a7270e1 Mon Sep 17 00:00:00 2001 From: zhanchunhu <765536121@qq.com> Date: Thu, 19 Jun 2025 10:15:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=88=B0=E6=95=B0=E6=8D=AE=E9=9B=86=E7=9A=84zip=E5=8C=85?= =?UTF-8?q?=E6=89=93=E4=B8=8D=E5=BC=80=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/NewDatasetServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java index d238b7b4..1b99af47 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java @@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.InputStreamResource; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -527,10 +528,21 @@ public class NewDatasetServiceImpl implements NewDatasetService { headers.put("Authorization", "Token " + labelDatasetVersionVo.getToken()); InputStream inputStream = HttpUtils.getIntputStream(labelloaclUrl + "/api/projects/" + labelDatasetVersionVo.getProjectId() + "/export?exportType=" + labelDatasetVersionVo.getExportType(), headers); - // 2. 打包成zip包 -// String zipFileName = labelDatasetVersionVo.getName() + "_" + labelDatasetVersionVo.getVersion() + ".zip"; - String zipFileName = labelDatasetVersionVo.getName() + "_" + labelDatasetVersionVo.getVersion(); - MultipartFile[] files = FileUtil.toMultipartFiles(inputStream, zipFileName); + // 2. 直接保存zip文件,不要重新打包 + String zipFileName = labelDatasetVersionVo.getName() + "_" + labelDatasetVersionVo.getVersion() + ".zip"; + + // 将InputStream转换为byte数组 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int length; + while ((length = inputStream.read(buffer)) >= 0) { + baos.write(buffer, 0, length); + } + inputStream.close(); + + // 创建MultipartFile + ByteArrayResource resource = new ByteArrayResource(baos.toByteArray()); + MultipartFile[] files = new MultipartFile[]{new FileUtil.CustomMultipartFile(resource, zipFileName)}; // 3. 上传到minio List> maps = uploadDatasetlocal(files, UUID.randomUUID().toString()); From c286cd58705b200f3e155f6fc1a465445e6d5860 Mon Sep 17 00:00:00 2001 From: zhanchunhu <765536121@qq.com> Date: Thu, 19 Jun 2025 11:13:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/platform/utils/FileUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/FileUtil.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/FileUtil.java index 25c3cfe5..2a4961fd 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/FileUtil.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/FileUtil.java @@ -136,12 +136,12 @@ public class FileUtil { return new MultipartFile[]{new CustomMultipartFile(resource, fileName)}; } - private static class CustomMultipartFile implements MultipartFile { + public static class CustomMultipartFile implements MultipartFile { private final ByteArrayResource resource; private final String fileName; - CustomMultipartFile(ByteArrayResource resource, String fileName) { + public CustomMultipartFile(ByteArrayResource resource, String fileName) { this.resource = resource; this.fileName = fileName; }