From 2960b22bc8b53a826920950b2b50d90d175a5ce8 Mon Sep 17 00:00:00 2001 From: gikhoon Date: Wed, 14 Aug 2024 15:10:30 +0900 Subject: [PATCH 1/7] =?UTF-8?q?refactor:=20S3=EC=97=90=20=EC=82=AC?= =?UTF-8?q?=EC=A7=84=20=EB=84=A3=EC=9D=84=20=EB=95=8C=20S3=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=A7=80=EC=A0=95=ED=95=9C=20=ED=99=95=EC=9E=A5?= =?UTF-8?q?=EC=9E=90=EB=AA=85=EC=9D=B4=20=EC=95=84=EB=8B=90=20=EB=95=8C=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EB=B0=9C=EC=83=9D=ED=95=98=EA=B2=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cotato/csquiz/common/S3/S3Uploader.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index 7d3b8816..6ae61d60 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -5,6 +5,7 @@ import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.PutObjectRequest; import org.cotato.csquiz.common.entity.S3Info; @@ -56,7 +57,7 @@ public void deleteFile(S3Info s3Info) { } } - private String upload(File uploadFile, String dirName) { + private String upload(File uploadFile, String dirName) throws ImageException { String fileName = dirName + "/" + uploadFile.getName(); String uploadUrl = putS3(uploadFile, fileName); removeNewFile(uploadFile); @@ -72,15 +73,20 @@ private void removeNewFile(File targetFile) { } } - private String putS3(File uploadFile, String fileName) { - amazonS3.putObject( - new PutObjectRequest(bucket, fileName, uploadFile).withCannedAcl(CannedAccessControlList.PublicRead)); - return amazonS3.getUrl(bucket, fileName).toString(); + private String putS3(File uploadFile, String fileName) throws ImageException { + try { + amazonS3.putObject( + new PutObjectRequest(bucket, fileName, uploadFile).withCannedAcl( + CannedAccessControlList.PublicRead)); + return amazonS3.getUrl(bucket, fileName).toString(); + } catch (AmazonS3Exception e) { + throw new ImageException(ErrorCode.FILE_EXTENSION_FAULT); + } } private Optional convert(MultipartFile file) throws ImageException { String fileExtension = extractFileExtension(file); - checkAllowedImageFileExtension(fileExtension); +// checkAllowedImageFileExtension(fileExtension); File convertFile = new File(System.getProperty("user.dir") + "/" + UUID.randomUUID() + "." + fileExtension); log.info("converted file name: {}", convertFile.getName()); From 052ba4be2f73572961a1d3780ded1696bf3709b6 Mon Sep 17 00:00:00 2001 From: gikhoon Date: Wed, 14 Aug 2024 15:17:34 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=9C=20=EB=A9=94=ED=83=80?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A7=80=EC=A0=95=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cotato/csquiz/common/S3/S3Uploader.java | 33 ++++++++++++++++--- .../cotato/csquiz/common/util/FileUtil.java | 6 ++-- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index 6ae61d60..d971ea90 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -1,12 +1,13 @@ package org.cotato.csquiz.common.S3; -import static org.cotato.csquiz.common.util.FileUtil.checkAllowedImageFileExtension; import static org.cotato.csquiz.common.util.FileUtil.extractFileExtension; +import static org.cotato.csquiz.common.util.FileUtil.isImageFileExtension; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.CannedAccessControlList; +import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; import org.cotato.csquiz.common.entity.S3Info; import org.cotato.csquiz.common.error.ErrorCode; @@ -28,6 +29,7 @@ @Component public class S3Uploader { + private static final String CONTENT_TYPE = "multipart/formed-data"; private final AmazonS3Client amazonS3; @Value("${cloud.aws.s3.bucket}") @@ -58,6 +60,7 @@ public void deleteFile(S3Info s3Info) { } private String upload(File uploadFile, String dirName) throws ImageException { + log.info(dirName); String fileName = dirName + "/" + uploadFile.getName(); String uploadUrl = putS3(uploadFile, fileName); removeNewFile(uploadFile); @@ -75,18 +78,38 @@ private void removeNewFile(File targetFile) { private String putS3(File uploadFile, String fileName) throws ImageException { try { - amazonS3.putObject( - new PutObjectRequest(bucket, fileName, uploadFile).withCannedAcl( - CannedAccessControlList.PublicRead)); + PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, fileName, uploadFile) + .withCannedAcl(CannedAccessControlList.PublicRead); + + if (isImageFile(uploadFile)) { + putObjectRequest = addMetadataToRequest(putObjectRequest); + } + + amazonS3.putObject(putObjectRequest); + return amazonS3.getUrl(bucket, fileName).toString(); } catch (AmazonS3Exception e) { throw new ImageException(ErrorCode.FILE_EXTENSION_FAULT); } } + private boolean isImageFile(File file) { + String fileName = file.getName(); + String extension = fileName.substring(fileName.lastIndexOf(".") + 1); + log.info(extension); + + return isImageFileExtension(extension); + } + + private PutObjectRequest addMetadataToRequest(PutObjectRequest request) { + ObjectMetadata objMeta = new ObjectMetadata(); + objMeta.setContentType(CONTENT_TYPE); + + return request.withMetadata(objMeta); + } + private Optional convert(MultipartFile file) throws ImageException { String fileExtension = extractFileExtension(file); -// checkAllowedImageFileExtension(fileExtension); File convertFile = new File(System.getProperty("user.dir") + "/" + UUID.randomUUID() + "." + fileExtension); log.info("converted file name: {}", convertFile.getName()); diff --git a/src/main/java/org/cotato/csquiz/common/util/FileUtil.java b/src/main/java/org/cotato/csquiz/common/util/FileUtil.java index 34c06e22..6c6ade4a 100644 --- a/src/main/java/org/cotato/csquiz/common/util/FileUtil.java +++ b/src/main/java/org/cotato/csquiz/common/util/FileUtil.java @@ -18,9 +18,7 @@ public static String extractFileExtension(MultipartFile file) throws ImageExcept return originalFilename.substring(originalFilename.lastIndexOf(".") + 1); } - public static void checkAllowedImageFileExtension(String fileExtension) throws ImageException { - if (!Arrays.asList(ALLOWED_IMAGE_FILE_EXTENSIONS).contains(fileExtension)) { - throw new ImageException(ErrorCode.FILE_EXTENSION_FAULT); - } + public static boolean isImageFileExtension(String fileExtension) { + return Arrays.asList(ALLOWED_IMAGE_FILE_EXTENSIONS).contains(fileExtension); } } From edf6a53a42c0b3534fc1b870c8e00daef49eaf8b Mon Sep 17 00:00:00 2001 From: gikhoon Date: Wed, 14 Aug 2024 17:57:16 +0900 Subject: [PATCH 3/7] =?UTF-8?q?refactor:=20=ED=8C=8C=EC=9D=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20S3Uploader=20=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EB=8B=A8=EC=88=9C=ED=99=94=20=EB=B0=8F=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 가독성을 위해 불필요한 Optional 사용 제거 - 로그 메시지의 단순화 - 가독성 개선을 위한 코드 통합 --- .../cotato/csquiz/common/S3/S3Uploader.java | 53 +++++-------------- 1 file changed, 14 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index d971ea90..477fdbc5 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -3,7 +3,6 @@ import static org.cotato.csquiz.common.util.FileUtil.extractFileExtension; import static org.cotato.csquiz.common.util.FileUtil.isImageFileExtension; -import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.CannedAccessControlList; @@ -22,7 +21,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.util.Optional; @Slf4j @RequiredArgsConstructor @@ -36,9 +34,8 @@ public class S3Uploader { private String bucket; public S3Info uploadFiles(MultipartFile multipartFile, String folderName) throws ImageException { - log.info("upload Files {}", multipartFile); - File uploadFile = convert(multipartFile) - .orElseThrow(() -> new ImageException(ErrorCode.IMAGE_PROCESSING_FAIL)); + log.info("{} 사진 업로드", multipartFile.getOriginalFilename()); + File uploadFile = convert(multipartFile); String uploadUrl = upload(uploadFile, folderName); return S3Info.builder() @@ -51,30 +48,17 @@ public S3Info uploadFiles(MultipartFile multipartFile, String folderName) throws public void deleteFile(S3Info s3Info) { String fileName = s3Info.getFolderName() + "/" + s3Info.getFileName(); - log.info("deleteFile fileName = {}", fileName); - try { - amazonS3.deleteObject(bucket, fileName); - } catch (SdkClientException e) { - log.error("Failed to delete file: {}", s3Info.getUrl(), e); - } + log.info("{} 사진 삭제", fileName); + amazonS3.deleteObject(bucket, fileName); } - private String upload(File uploadFile, String dirName) throws ImageException { - log.info(dirName); - String fileName = dirName + "/" + uploadFile.getName(); - String uploadUrl = putS3(uploadFile, fileName); - removeNewFile(uploadFile); - log.info(uploadUrl); + private String upload(File localUploadFile, String dirName) throws ImageException { + String fileName = dirName + "/" + localUploadFile.getName(); + String uploadUrl = putS3(localUploadFile, fileName); + localUploadFile.delete(); return uploadUrl; } - private void removeNewFile(File targetFile) { - if (targetFile.delete()) { - log.info("삭제 완료"); - } else { - log.error("삭제 에러"); - } - } private String putS3(File uploadFile, String fileName) throws ImageException { try { @@ -96,7 +80,6 @@ private String putS3(File uploadFile, String fileName) throws ImageException { private boolean isImageFile(File file) { String fileName = file.getName(); String extension = fileName.substring(fileName.lastIndexOf(".") + 1); - log.info(extension); return isImageFileExtension(extension); } @@ -108,26 +91,18 @@ private PutObjectRequest addMetadataToRequest(PutObjectRequest request) { return request.withMetadata(objMeta); } - private Optional convert(MultipartFile file) throws ImageException { + private File convert(MultipartFile file) throws ImageException { String fileExtension = extractFileExtension(file); - File convertFile = new File(System.getProperty("user.dir") + "/" + UUID.randomUUID() + "." + fileExtension); - log.info("converted file name: {}", convertFile.getName()); try { - log.info("convert try start"); - if (convertFile.createNewFile()) { // 바로 위에서 지정한 경로에 File이 생성됨 (경로가 잘못되었다면 생성 불가능) - FileOutputStream fos = new FileOutputStream(convertFile); // FileOutputStream 데이터를 파일에 바이트 스트림으로 저장하기 위함 - fos.write(file.getBytes()); - fos.close(); - log.info("convert to " + convertFile); - return Optional.of(convertFile); - } + FileOutputStream fos = new FileOutputStream(convertFile); + fos.write(file.getBytes()); + fos.close(); + + return convertFile; } catch (IOException e) { - log.error("convert 실패", e); throw new ImageException(ErrorCode.IMAGE_PROCESSING_FAIL); } - log.info("convert empty"); - return Optional.empty(); } } From 36612186e71050bc868550f0b1697d3cb1d0f77a Mon Sep 17 00:00:00 2001 From: gikhoon Date: Thu, 15 Aug 2024 14:40:39 +0900 Subject: [PATCH 4/7] =?UTF-8?q?refactor:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=9C=20?= =?UTF-8?q?=EB=A9=94=ED=83=80=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=A1=9C=EC=A7=81=20=EA=B0=84=EC=86=8C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/cotato/csquiz/common/S3/S3Uploader.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index 477fdbc5..828f02a0 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -66,7 +66,8 @@ private String putS3(File uploadFile, String fileName) throws ImageException { .withCannedAcl(CannedAccessControlList.PublicRead); if (isImageFile(uploadFile)) { - putObjectRequest = addMetadataToRequest(putObjectRequest); + ObjectMetadata objMeta = new ObjectMetadata(); + objMeta.setContentType(CONTENT_TYPE); } amazonS3.putObject(putObjectRequest); @@ -84,13 +85,6 @@ private boolean isImageFile(File file) { return isImageFileExtension(extension); } - private PutObjectRequest addMetadataToRequest(PutObjectRequest request) { - ObjectMetadata objMeta = new ObjectMetadata(); - objMeta.setContentType(CONTENT_TYPE); - - return request.withMetadata(objMeta); - } - private File convert(MultipartFile file) throws ImageException { String fileExtension = extractFileExtension(file); File convertFile = new File(System.getProperty("user.dir") + "/" + UUID.randomUUID() + "." + fileExtension); From 1a999fd86eca8134569342949f20c3930b4e0dfb Mon Sep 17 00:00:00 2001 From: gikhoon Date: Thu, 15 Aug 2024 14:40:53 +0900 Subject: [PATCH 5/7] =?UTF-8?q?refactor:=20=ED=8C=8C=EC=9D=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EB=A1=9C=EC=A7=81=20=EA=B0=84=EC=86=8C?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/cotato/csquiz/common/S3/S3Uploader.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index 828f02a0..e4800cde 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -35,12 +35,15 @@ public class S3Uploader { public S3Info uploadFiles(MultipartFile multipartFile, String folderName) throws ImageException { log.info("{} 사진 업로드", multipartFile.getOriginalFilename()); - File uploadFile = convert(multipartFile); - String uploadUrl = upload(uploadFile, folderName); + File localUploadFile = convert(multipartFile); + + String fileName = folderName + "/" + localUploadFile.getName(); + String uploadUrl = putS3(localUploadFile, fileName); + localUploadFile.delete(); return S3Info.builder() .folderName(folderName) - .fileName(uploadFile.getName()) + .fileName(localUploadFile.getName()) .url(uploadUrl) .build(); } @@ -52,14 +55,6 @@ public void deleteFile(S3Info s3Info) { amazonS3.deleteObject(bucket, fileName); } - private String upload(File localUploadFile, String dirName) throws ImageException { - String fileName = dirName + "/" + localUploadFile.getName(); - String uploadUrl = putS3(localUploadFile, fileName); - localUploadFile.delete(); - return uploadUrl; - } - - private String putS3(File uploadFile, String fileName) throws ImageException { try { PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, fileName, uploadFile) From e3d6d24f7257b60038e5fff23cc5cae61e5a9e9f Mon Sep 17 00:00:00 2001 From: gikhoon Date: Thu, 15 Aug 2024 14:47:29 +0900 Subject: [PATCH 6/7] =?UTF-8?q?refactor:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=ED=99=95=EC=9E=A5=EC=9E=90=20=EB=AA=A9=EB=A1=9D=20=EC=83=81?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EB=B0=B0=EC=97=B4=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/cotato/csquiz/common/util/FileUtil.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/util/FileUtil.java b/src/main/java/org/cotato/csquiz/common/util/FileUtil.java index 6c6ade4a..9ee7099a 100644 --- a/src/main/java/org/cotato/csquiz/common/util/FileUtil.java +++ b/src/main/java/org/cotato/csquiz/common/util/FileUtil.java @@ -1,13 +1,13 @@ package org.cotato.csquiz.common.util; -import java.util.Arrays; +import java.util.List; import org.cotato.csquiz.common.error.ErrorCode; import org.cotato.csquiz.common.error.exception.ImageException; import org.springframework.web.multipart.MultipartFile; public class FileUtil { - private static final String[] ALLOWED_IMAGE_FILE_EXTENSIONS = {"png", "jpg", "jpeg", "heif"}; + private static final List ALLOWED_IMAGE_FILE_EXTENSIONS = List.of("png", "jpg", "jpeg", "heif"); public static String extractFileExtension(MultipartFile file) throws ImageException { String originalFilename = file.getOriginalFilename(); @@ -19,6 +19,6 @@ public static String extractFileExtension(MultipartFile file) throws ImageExcept } public static boolean isImageFileExtension(String fileExtension) { - return Arrays.asList(ALLOWED_IMAGE_FILE_EXTENSIONS).contains(fileExtension); + return ALLOWED_IMAGE_FILE_EXTENSIONS.contains(fileExtension); } } From cbc42cd959bfbffc347e1222b6495bcb4fbc295e Mon Sep 17 00:00:00 2001 From: gikhoon Date: Fri, 16 Aug 2024 16:32:27 +0900 Subject: [PATCH 7/7] =?UTF-8?q?refactor:=20S3=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EB=A1=9C=EC=A7=81=20=EA=B8=80=EB=A1=9C?= =?UTF-8?q?=EB=B2=8C=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=EB=A1=9C=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cotato/csquiz/common/S3/S3Uploader.java | 23 ++++++++----------- .../error/handler/GlobalExceptionHandler.java | 10 ++++++++ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java index e4800cde..f750e52d 100644 --- a/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java +++ b/src/main/java/org/cotato/csquiz/common/S3/S3Uploader.java @@ -4,7 +4,6 @@ import static org.cotato.csquiz.common.util.FileUtil.isImageFileExtension; import com.amazonaws.services.s3.AmazonS3Client; -import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; @@ -55,22 +54,18 @@ public void deleteFile(S3Info s3Info) { amazonS3.deleteObject(bucket, fileName); } - private String putS3(File uploadFile, String fileName) throws ImageException { - try { - PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, fileName, uploadFile) - .withCannedAcl(CannedAccessControlList.PublicRead); + private String putS3(File uploadFile, String fileName) { + PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, fileName, uploadFile) + .withCannedAcl(CannedAccessControlList.PublicRead); - if (isImageFile(uploadFile)) { - ObjectMetadata objMeta = new ObjectMetadata(); - objMeta.setContentType(CONTENT_TYPE); - } + if (isImageFile(uploadFile)) { + ObjectMetadata objMeta = new ObjectMetadata(); + objMeta.setContentType(CONTENT_TYPE); + } - amazonS3.putObject(putObjectRequest); + amazonS3.putObject(putObjectRequest); - return amazonS3.getUrl(bucket, fileName).toString(); - } catch (AmazonS3Exception e) { - throw new ImageException(ErrorCode.FILE_EXTENSION_FAULT); - } + return amazonS3.getUrl(bucket, fileName).toString(); } private boolean isImageFile(File file) { diff --git a/src/main/java/org/cotato/csquiz/common/error/handler/GlobalExceptionHandler.java b/src/main/java/org/cotato/csquiz/common/error/handler/GlobalExceptionHandler.java index c9a0d35d..28517304 100644 --- a/src/main/java/org/cotato/csquiz/common/error/handler/GlobalExceptionHandler.java +++ b/src/main/java/org/cotato/csquiz/common/error/handler/GlobalExceptionHandler.java @@ -1,5 +1,6 @@ package org.cotato.csquiz.common.error.handler; +import com.amazonaws.services.s3.model.AmazonS3Exception; import org.cotato.csquiz.common.error.exception.AppException; import org.cotato.csquiz.common.error.exception.ImageException; import org.cotato.csquiz.common.error.response.ErrorResponse; @@ -84,4 +85,13 @@ public ResponseEntity handleSQLException(SQLException e, HttpServ ErrorResponse errorResponse = ErrorResponse.of(ErrorCode.INTERNAL_SQL_ERROR, request); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } + + @ExceptionHandler(AmazonS3Exception.class) + public ResponseEntity handleAmazonS3Exception(AmazonS3Exception e, HttpServletRequest request) { + log.error("발생한 에러: {}", e.getErrorCode()); + log.error("에러가 발생한 지점 {}, {}", request.getMethod(), request.getRequestURI()); + ErrorResponse errorResponse = ErrorResponse.of(ErrorCode.FILE_EXTENSION_FAULT, request); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorResponse); + } } +