Skip to content

Commit

Permalink
Merge pull request #197 from ITA-OneByte/refactor/176
Browse files Browse the repository at this point in the history
[�Fix] 드라이브 프론트 요구사항
  • Loading branch information
dpfls0922 authored Jan 14, 2025
2 parents 10cec98 + a300be4 commit c18080d
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ public class DriveFolderService {
private String bucketName;

public String createFolder(Member member, DriveType driveType, String folderName, String folderPath) {
if (folderName == null || folderName.trim().isEmpty()) {
throw new IllegalArgumentException("폴더 이름은 비어 있을 수 없습니다.");
}
String uniqueFolderName = generateUniqueFolderName(member, driveType, folderName, folderPath);
String fullFolderPath = generateFolderKey(member, driveType, uniqueFolderName, folderPath);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,12 @@ public List<FileResponse> getFilesFromS3(Member member, DriveType driveType, Str
String prefix = DriveUtil.buildPrefix(driveType, member, folderPath);
List<S3ObjectSummary> objectSummaries = getS3ObjectList(prefix);

String folderPathWithSlash = folderPath.isEmpty() ? folderPath : folderPath + "/";
for (S3ObjectSummary summary : objectSummaries) {
FileResponse fileInfo = buildFileInfo(summary);
files.add(fileInfo);
if (!fileInfo.fileName().equals(folderPathWithSlash)) {
files.add(fileInfo);
}
}
return files;
}
Expand All @@ -41,9 +44,14 @@ public List<FileResponse> searchFilesByName(Member member, DriveType driveType,
ListObjectsV2Request request = createListObjectsRequest(driveType, member, folderPath);
ListObjectsV2Result result = amazonS3.listObjectsV2(request);

String folderPathWithSlash = folderPath.isEmpty() ? folderPath : folderPath + "/";
return result.getObjectSummaries().stream()
.map(this::buildFileInfo)
.filter(fileInfo -> normalize(fileInfo.fileName()).contains(normalize(fileName))) // 정규화하여 필터링
.filter(fileInfo -> {
boolean isFolder = fileInfo.fileName().equals(folderPathWithSlash);
boolean matchesFileName = fileName.isEmpty() || normalize(fileInfo.fileName()).contains(normalize(fileName));
return !isFolder && matchesFileName;
})
.collect(Collectors.toList());
}

Expand Down Expand Up @@ -72,8 +80,7 @@ private Map<String, String> getTagsForS3Object(String objectKey) {

private ListObjectsV2Request createListObjectsRequest(DriveType driveType, Member member, String folderPath) {
ListObjectsV2Request request = new ListObjectsV2Request()
.withBucketName(bucketName)
.withDelimiter("/");
.withBucketName(bucketName);

String prefix = DriveUtil.buildPrefix(driveType, member, folderPath);
request.setPrefix(prefix);
Expand All @@ -88,11 +95,13 @@ public List<FileResponse> classifyFilesByType(Member member, DriveType driveType
ListObjectsV2Request request = createListObjectsRequest(driveType, member, folderPath);
ListObjectsV2Result result = amazonS3.listObjectsV2(request);

String folderPathWithSlash = folderPath.isEmpty() ? folderPath : folderPath + "/";
return result.getObjectSummaries().stream()
.map(this::buildFileInfo)
.filter(fileInfo -> {
FileType fileType = DriveUtil.getFileType(fileInfo.fileName());
return fileType.equals(filterFileType);
boolean isFolder = fileInfo.fileName().equals(folderPathWithSlash);
boolean matchesFileType = DriveUtil.getFileType(fileInfo.fileName()).equals(filterFileType);
return !isFolder && matchesFileType;
})
.collect(Collectors.toList());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ private void addTagsToS3Object(String objectKey, Member member, String folderPat
LocalDateTime now = LocalDateTime.now();
String formattedDate = now.format(DateTimeFormatter.ISO_DATE_TIME);
String finalFolderPath = folderPath != null && !folderPath.trim().isEmpty() ? folderPath : "";
finalFolderPath = finalFolderPath + "/";

List<Tag> tags = List.of(
new Tag("folderPath", finalFolderPath),
Expand Down

0 comments on commit c18080d

Please sign in to comment.