diff --git a/src/main/java/classfit/example/classfit/drive/service/DriveFolderService.java b/src/main/java/classfit/example/classfit/drive/service/DriveFolderService.java index a7ec3488..05514121 100644 --- a/src/main/java/classfit/example/classfit/drive/service/DriveFolderService.java +++ b/src/main/java/classfit/example/classfit/drive/service/DriveFolderService.java @@ -35,14 +35,15 @@ public String createFolder(Member member, DriveType driveType, String folderName throw new IllegalArgumentException("폴더 이름은 비어 있을 수 없습니다."); } String uniqueFolderName = generateUniqueFolderName(member, driveType, folderName, folderPath); - String fullFolderPath = generateFolderKey(member, driveType, uniqueFolderName, folderPath); + String folderKey = generateFolderKey(member, driveType, uniqueFolderName, folderPath); + String fullFolderPath = folderPath.isEmpty() ? "" : folderPath + "/"; ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(0); InputStream emptyContent = new ByteArrayInputStream(new byte[0]); - amazonS3.putObject(new PutObjectRequest(bucketName, fullFolderPath, emptyContent, metadata)); - addUploadTagsToS3Object(fullFolderPath, member, uniqueFolderName); + amazonS3.putObject(new PutObjectRequest(bucketName, folderKey, emptyContent, metadata)); + addUploadTagsToS3Object(folderKey, member, uniqueFolderName, fullFolderPath); return fullFolderPath; } @@ -75,12 +76,11 @@ private String generateFolderKey(Member member, DriveType driveType, String fold return basePath + (folderPath.isEmpty() ? "" : folderPath + "/") + folderName + "/"; } - private void addUploadTagsToS3Object(String objectKey, Member member, String uniqueFolderName) { - String folderPathWithoutPrefix = getFolderPathWithoutPrefix(objectKey); + private void addUploadTagsToS3Object(String objectKey, Member member, String uniqueFolderName, String fullFolderPath) { LocalDateTime now = LocalDateTime.now(); String formattedDate = now.format(DateTimeFormatter.ISO_DATE_TIME); List tags = List.of( - new Tag("folderPath", folderPathWithoutPrefix), + new Tag("folderPath", fullFolderPath), new Tag("originalFileName", uniqueFolderName), new Tag("uploadedBy", member.getName()), new Tag("uploadedAt", formattedDate) @@ -88,12 +88,6 @@ private void addUploadTagsToS3Object(String objectKey, Member member, String uni amazonS3.setObjectTagging(new SetObjectTaggingRequest(bucketName, objectKey, new ObjectTagging(tags))); } - private String getFolderPathWithoutPrefix(String objectKey) { - String folderPathWithoutPrefix = objectKey.replaceFirst("^personal/\\d+/|^shared/\\d+/", ""); - folderPathWithoutPrefix = folderPathWithoutPrefix.replaceAll("[^a-zA-Z0-9-_./]", "").trim(); - return folderPathWithoutPrefix; - } - public List getFolders(Member member, DriveType driveType, String folderPath) { ListObjectsV2Request request = new ListObjectsV2Request() .withBucketName(bucketName)