Browse Source

Merge branch 'dev' of code.gitlink.org.cn:ci4s/ci4sManagement-cloud into dev

pull/19/head
cp3hnu 1 year ago
parent
commit
57d859a8dc
5 changed files with 61 additions and 14 deletions
  1. +5
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java
  2. +10
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java
  3. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  4. +15
    -12
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java
  5. +30
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java

+ 5
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java View File

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.util.Map;

/**
* (Dataset)表控制层
@@ -195,9 +196,11 @@ public class DatasetController {



@GetMapping("/exportDataset")
@PostMapping("/exportDataset")
@ApiOperation(value = "导出数据集", notes = "将流水线产物导出到数据集。")
public AjaxResult exportDataset(@RequestParam("path") String path, @RequestParam("uuid") String uuid) throws Exception {
public AjaxResult exportDataset(@RequestBody Map map) throws Exception {
String path = (String) map.get("path");
String uuid = (String) map.get("uuid");
return AjaxResult.success(datasetService.exportDataset(path, uuid));
}



+ 10
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java View File

@@ -2,6 +2,7 @@ package com.ruoyi.platform.controller.model;


import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.domain.Models;
@@ -225,6 +226,15 @@ public class ModelsController extends BaseController {

}

@PostMapping("/exportModel")
@ApiOperation(value = "导出模型", notes = "将流水线产物导出到模型。")
public AjaxResult exportModels(@RequestBody Map map) throws Exception {
String path = (String) map.get("path");
String uuid = (String) map.get("uuid");
return AjaxResult.success(this.modelsService.exportModels(path, uuid));
}



}


+ 1
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -81,4 +81,5 @@ public interface ModelsService {

String readFileContent(Integer modelsId, String version) throws Exception;

List<Map<String, String>> exportModels(String path, String uuid) throws Exception;
}

+ 15
- 12
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java View File

@@ -395,21 +395,24 @@ public class DatasetServiceImpl implements DatasetService {
String srcBucketName = path.substring(0, path.indexOf("/"));
//构建目标目录路径
String username = SecurityUtils.getLoginUser().getUsername();
String targetDir = "datasets/" + username + "/" + uuid;
String srcDir = path.substring(path.indexOf("/") + 1);
String targetDir = "datasets/" + username + "/" + uuid + "/";
// 递归拷贝整个原目录到目标目录下
minioUtil.copyDirectory(srcBucketName, path, bucketName, targetDir);
minioUtil.copyDirectory(srcBucketName, srcDir, bucketName, targetDir);
List<Item> movedItems = minioUtil.getAllObjectsByPrefix(bucketName, targetDir, true);
for (Item movedItem : movedItems) {
Map<String, String> result = new HashMap<>();
String url = movedItem.objectName();
String fileName = extractFileName(url);
// 获取文件大小并转换为可读形式
long sizeInBytes = movedItem.size();
String formattedSize = FileUtil.formatFileSize(sizeInBytes); // 格式化文件大小
result.put("fileName", fileName);
result.put("url", url); // objectName根据实际情况定义
result.put("fileSize", formattedSize);
results.add(result);
if(!movedItem.isDir() && movedItem.size() > 0){ // 检查是否为非目录且文件大小大于0
Map<String, String> result = new HashMap<>();
String url = movedItem.objectName();
String fileName = extractFileName(url);
// 获取文件大小并转换为可读形式
long sizeInBytes = movedItem.size();
String formattedSize = FileUtil.formatFileSize(sizeInBytes); // 格式化文件大小
result.put("fileName", fileName);
result.put("url", url); // objectName根据实际情况定义
result.put("fileSize", formattedSize);
results.add(result);
}
}
return results;
}


+ 30
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -14,6 +14,7 @@ import com.ruoyi.platform.utils.MinioUtil;
import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.VersionVo;
import com.ruoyi.system.api.model.LoginUser;
import io.minio.messages.Item;
import io.netty.util.Version;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.io.InputStreamResource;
@@ -409,6 +410,35 @@ public class ModelsServiceImpl implements ModelsService {

}

@Override
public List<Map<String, String>> exportModels(String path, String uuid) throws Exception {
List<Map<String, String>> results = new ArrayList<>();
//根据path得到源文件所在桶名
String srcBucketName = path.substring(0, path.indexOf("/"));
//构建目标目录路径
String username = SecurityUtils.getLoginUser().getUsername();
String srcDir = path.substring(path.indexOf("/") + 1);
String targetDir = "models/" + username + "/" + uuid + "/";
// 递归拷贝整个原目录到目标目录下
minioUtil.copyDirectory(srcBucketName, srcDir, bucketName, targetDir);
List<Item> movedItems = minioUtil.getAllObjectsByPrefix(bucketName, targetDir, true);
for (Item movedItem : movedItems) {
if(!movedItem.isDir() && movedItem.size() > 0){ // 检查是否为非目录且文件大小大于0
Map<String, String> result = new HashMap<>();
String url = movedItem.objectName();
String fileName = extractFileName(url);
// 获取文件大小并转换为可读形式
long sizeInBytes = movedItem.size();
String formattedSize = FileUtil.formatFileSize(sizeInBytes); // 格式化文件大小
result.put("fileName", fileName);
result.put("url", url); // objectName根据实际情况定义
result.put("fileSize", formattedSize);
results.add(result);
}
}
return results;
}

private String extractFileName(String urlStr) {
return urlStr.substring(urlStr.lastIndexOf('/') + 1);
}


Loading…
Cancel
Save