Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1057,9 +1057,6 @@ private void setDatasetFileId(DatasetFile datasetFile, Dataset dataset) {
*/
@Transactional
public List<DatasetFile> addFilesToDataset(String datasetId, AddFilesRequest req) {
if (!req.isValidPrefix()) {
throw BusinessException.of(DataManagementErrorCode.DIRECTORY_NOT_FOUND);
}
Dataset dataset = datasetRepository.getById(datasetId);
BusinessAssert.notNull(dataset, SystemErrorCode.RESOURCE_NOT_FOUND);
List<DatasetFile> addedFiles = new ArrayList<>();
Expand Down Expand Up @@ -1161,7 +1158,7 @@ private static DatasetFile getDatasetFileForAdd(AddFilesRequest req, AddFilesReq
.fileName(fileName)
.fileType(AnalyzerUtils.getExtension(fileName))
.fileSize(sourceFile.length())
.filePath(Paths.get(dataset.getPath(), req.getPrefix(), fileName).toString())
.filePath(Paths.get(dataset.getPath(), req.getEffectivePrefix(file), fileName).toString())
.uploadTime(currentTime)
.lastAccessTime(currentTime)
.metadata(objectMapper.writeValueAsString(file.getMetadata()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* AddFilesRequest1
* AddFilesRequest
*
* @since 2026/2/9
*/
Expand All @@ -26,38 +25,44 @@
@NoArgsConstructor
@AllArgsConstructor
public class AddFilesRequest {
private boolean softAdd;

@ValidPath
private String prefix = "";

@NotEmpty(message = "文件列表不能为空")
@Size(max = 1000, message = "文件数量不能超过1000个")
@Valid
private List<FileRequest> files;

public AddFilesRequest(List<String> paths) {
if (CollectionUtils.isEmpty(paths)) {
return;
}
this.files = paths.stream().map(path -> {
AddFilesRequest.FileRequest file = new AddFilesRequest.FileRequest();
FileRequest file = new FileRequest();
file.setFilePath(path);
return file;
return file;
}).toList();
}

/**
* 获取文件的前缀,优先使用文件自身的 prefix,为空时回退到请求级别的 prefix
*/
public String getEffectivePrefix(FileRequest file) {
return (file.getPrefix() != null && !file.getPrefix().isEmpty()) ? file.getPrefix() : prefix;
}

@Getter
@Setter
public static class FileRequest {
@NotBlank(message = "文件路径不能为空")
@Size(max = 1000, message = "文件路径长度不能超过1000个字符")
private String filePath;

private Map<String, Object> metadata = new HashMap<>();
}

private boolean softAdd;
@ValidPath
private String prefix = "";

@ValidPath()
private String prefix = "";

@NotEmpty(message = "文件列表不能为空")
@Size(max = 1000, message = "文件数量不能超过1000个")
@Valid
private List<FileRequest> files;

public boolean isValidPrefix() {
return StringUtils.isEmpty(prefix) || (!prefix.startsWith("."));
private Map<String, Object> metadata = new HashMap<>();
}
}
Loading