From 718ccbe5ef6b848820d9de86f171ded6f95baf3c Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Thu, 27 Feb 2025 11:40:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B6=85=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=AF=BB=E4=BC=98=E5=AE=9E=E9=AA=8C=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RayInsServiceImpl.java | 7 +++- .../com/ruoyi/platform/utils/MinioUtil.java | 39 ++++++++++++++++++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java index c922f093..c5f02452 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java @@ -277,7 +277,7 @@ public class RayInsServiceImpl implements RayInsService { rayIns.setResultTxt(endpoint + "/" + directoryPath + "/result.txt"); String prefix = directoryPath.substring(directoryPath.indexOf("/") + 1, directoryPath.length()) + "/"; - List maps = minioUtil.listFilesInDirectory(bucketName, prefix); + List maps = minioUtil.listRayFilesInDirectory(bucketName, prefix); if (!maps.isEmpty()) { rayIns.setFileList(maps); @@ -304,7 +304,10 @@ public class RayInsServiceImpl implements RayInsService { Map time_total_s = (Map) metric_analysis.get("time_total_s"); trial.put("training_iteration", last_result.get("training_iteration")); - trial.put("time", time_total_s.get("avg")); + trial.put("time_avg", time_total_s.get("avg")); + + Map param = JsonUtils.jsonToMap(rayIns.getParam()); + trial.put("metric_analysis", metric_analysis.get((String) param.get("metric"))); trialList.add(trial); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/MinioUtil.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/MinioUtil.java index f311065a..3e2b8c9d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/MinioUtil.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/MinioUtil.java @@ -1,7 +1,6 @@ package com.ruoyi.platform.utils; -import com.ruoyi.common.security.utils.SecurityUtils; import io.minio.*; import io.minio.errors.MinioException; import io.minio.messages.DeleteObject; @@ -30,6 +29,8 @@ public class MinioUtil { @Value("${git.localPath}") String localPath; + @Value("${minio.endpointIp}") + String minioEndpoint; @Autowired public MinioUtil(@Value("${minio.endpoint}") String minioEndpoint, @Value("${minio.accessKey}") String minioAccessKey, @Value("${minio.secretKey}") String minioSecretKey) { @@ -315,12 +316,48 @@ public class MinioUtil { Item item = result.get(); String fullPath = item.objectName(); Path path = Paths.get(fullPath); + + String fileName = path.getFileName().toString(); + long fileSize = item.size(); + String formattedSize = FileUtil.formatFileSize(fileSize); // 格式化文件大小 + Map map = new HashMap<>(); + map.put("name", fileName); + map.put("size", formattedSize); + fileInfoList.add(map); + } + + return fileInfoList; + } + + + public List listRayFilesInDirectory(String bucketName, String prefix) throws Exception { + List fileInfoList = new ArrayList<>(); + Iterable> results = minioClient.listObjects( + ListObjectsArgs.builder() + .prefix(prefix) + .bucket(bucketName) + .build()); + + for (Result result : results) { + Item item = result.get(); + String fullPath = item.objectName(); + Path path = Paths.get(fullPath); + String fileName = path.getFileName().toString(); long fileSize = item.size(); String formattedSize = FileUtil.formatFileSize(fileSize); // 格式化文件大小 Map map = new HashMap<>(); map.put("name", fileName); map.put("size", formattedSize); + + if ((fileName.startsWith("run") || fileName.startsWith("checkpoint")) && fileSize == 0) { + map.put("isDirectory", true); + map.put("children", listRayFilesInDirectory(bucketName, fullPath)); + } else { + map.put("isFile", true); + map.put("url", minioEndpoint + "/" + bucketName + "/" + fullPath); + } + fileInfoList.add(map); }