From ac922119320af4a72cdd382daddda6d69ebd3b8b Mon Sep 17 00:00:00 2001 From: SSung023 Date: Sat, 21 Dec 2024 12:41:19 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=ED=8C=8C=EC=9D=BC=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=ED=91=9C=EC=8B=9C=EB=A5=BC=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - yml 파일의 값을 읽은 후, 로컬/프로덕션 버전 정보를 저장하는 클래스 작성 --- .../gitget/global/file/dto/FileEnv.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/com/genius/gitget/global/file/dto/FileEnv.java diff --git a/src/main/java/com/genius/gitget/global/file/dto/FileEnv.java b/src/main/java/com/genius/gitget/global/file/dto/FileEnv.java new file mode 100644 index 00000000..b8a7d667 --- /dev/null +++ b/src/main/java/com/genius/gitget/global/file/dto/FileEnv.java @@ -0,0 +1,19 @@ +package com.genius.gitget.global.file.dto; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +@Component +public class FileEnv { + private static Environment environment; + + @Autowired + public FileEnv(Environment env) { + environment = env; + } + + public static String getFileEnvironment() { + return environment.getProperty("file.mode").toUpperCase(); + } +} \ No newline at end of file From cb010cb81b68bbd42b47e243ae827fe83debfd64 Mon Sep 17 00:00:00 2001 From: SSung023 Date: Sat, 21 Dec 2024 12:43:38 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=ED=8C=8C=EC=9D=BC=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - accessURI를 source로 변경 - 파일 버전 정보(environment) 추가 - LOCAL / PROD --- .../com/genius/gitget/global/file/dto/FileResponse.java | 7 ++++--- .../com/genius/gitget/global/file/domain/FilesTest.java | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genius/gitget/global/file/dto/FileResponse.java b/src/main/java/com/genius/gitget/global/file/dto/FileResponse.java index a5ac6f09..793b51c4 100644 --- a/src/main/java/com/genius/gitget/global/file/dto/FileResponse.java +++ b/src/main/java/com/genius/gitget/global/file/dto/FileResponse.java @@ -2,13 +2,14 @@ public record FileResponse( Long fileId, - String accessURI) { + String source, + String environment) { public static FileResponse createExistFile(Long filesId, String accessURI) { - return new FileResponse(filesId, accessURI); + return new FileResponse(filesId, accessURI, FileEnv.getFileEnvironment()); } public static FileResponse createNotExistFile() { - return new FileResponse(0L, ""); + return new FileResponse(0L, "", FileEnv.getFileEnvironment()); } } diff --git a/src/test/java/com/genius/gitget/global/file/domain/FilesTest.java b/src/test/java/com/genius/gitget/global/file/domain/FilesTest.java index 4abda17a..f45070d2 100644 --- a/src/test/java/com/genius/gitget/global/file/domain/FilesTest.java +++ b/src/test/java/com/genius/gitget/global/file/domain/FilesTest.java @@ -20,13 +20,13 @@ public void should_updateFiles_when_passUpdateDTO() { .fileType(FileType.INSTANCE) .originalFilename("originalFilename") .savedFilename("savedFilename") - .fileURI("accessURI") + .fileURI("source") .build(); UpdateDTO updateDTO = UpdateDTO.builder() .savedFilename("new savedFilename") .originalFilename("new originalFilename") - .fileURI("new accessURI") + .fileURI("new source") .build(); //when From 7fc1a972538175d37615d30caad6afabfdf7a762 Mon Sep 17 00:00:00 2001 From: SSung023 Date: Sat, 21 Dec 2024 12:44:12 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=EC=BF=BC=EB=A6=AC=EB=AC=B8=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PK 관련 에러 수정 --- src/main/resources/data.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index d865b7e3..a101bb92 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -44,9 +44,8 @@ FROM (SELECT 1 AS identifier, 'PROFILE_FRAME') AS new_items WHERE (SELECT COUNT(*) FROM item) < 3; -INSERT INTO users (`point`, user_id, nickname, information, identifier, tags, provider_info, `role`) +INSERT INTO users (`point`, nickname, information, identifier, tags, provider_info, `role`) SELECT 0, - 104, 'Guest', '자기 소개입니다.', 'Guest', From f785169eeb870973b75e4d4760a1abf68b5555b1 Mon Sep 17 00:00:00 2001 From: SSung023 Date: Sat, 21 Dec 2024 12:45:30 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20=EB=B2=84=EC=A0=84=20=EB=B3=84?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EB=B0=A9=EB=B2=95=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LOCAL 버전의 경우 파일을 다운로드 받아 BASE64로 인코딩한 문자열을 반환하도록 변경 - PROD 버전의 경우 파일에 접근할 수 있는 URI 반환 --- .../gitget/global/file/service/LocalFileService.java | 11 ++++++++++- .../gitget/global/file/service/S3FileService.java | 5 ++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genius/gitget/global/file/service/LocalFileService.java b/src/main/java/com/genius/gitget/global/file/service/LocalFileService.java index 9c5fe69d..56298525 100644 --- a/src/main/java/com/genius/gitget/global/file/service/LocalFileService.java +++ b/src/main/java/com/genius/gitget/global/file/service/LocalFileService.java @@ -13,8 +13,11 @@ import com.genius.gitget.global.util.exception.BusinessException; import java.io.File; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.StandardCopyOption; +import java.util.Base64; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.UrlResource; import org.springframework.web.multipart.MultipartFile; public class LocalFileService implements FileService { @@ -45,7 +48,13 @@ public FileDTO upload(MultipartFile multipartFile, FileType fileType) { @Override public String getFileAccessURI(Files files) { - return files.getFileURI(); + try { + UrlResource urlResource = new UrlResource("file:" + files.getFileURI()); + byte[] encode = Base64.getEncoder().encode(urlResource.getContentAsByteArray()); + return new String(encode, StandardCharsets.UTF_8); + } catch (IOException e) { + return ""; + } } @Override diff --git a/src/main/java/com/genius/gitget/global/file/service/S3FileService.java b/src/main/java/com/genius/gitget/global/file/service/S3FileService.java index dccba2af..44ad4201 100644 --- a/src/main/java/com/genius/gitget/global/file/service/S3FileService.java +++ b/src/main/java/com/genius/gitget/global/file/service/S3FileService.java @@ -13,7 +13,6 @@ import com.genius.gitget.global.file.dto.UpdateDTO; import com.genius.gitget.global.util.exception.BusinessException; import java.io.IOException; -import java.net.URL; import org.springframework.web.multipart.MultipartFile; public class S3FileService implements FileService { @@ -21,6 +20,7 @@ public class S3FileService implements FileService { private final FileUtil fileUtil; private final String bucket; private final String cloudFrontDomain; + public S3FileService(AmazonS3 amazonS3, FileUtil fileUtil, String bucket, String cloudFrontDomain) { this.amazonS3 = amazonS3; this.fileUtil = fileUtil; @@ -30,8 +30,7 @@ public S3FileService(AmazonS3 amazonS3, FileUtil fileUtil, String bucket, String @Override public String getFileAccessURI(Files files) { - URL url = amazonS3.getUrl(bucket, files.getFileURI()); - return cloudFrontDomain + url.getFile(); + return cloudFrontDomain + files.getFileURI(); } @Override