From aba2946c3892428c977f45bc8cf8ffb492bbb1cd Mon Sep 17 00:00:00 2001 From: eckrin Date: Fri, 10 Nov 2023 19:02:28 +0900 Subject: [PATCH] =?UTF-8?q?add:=20s3=20dependency,=20configuration=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 ++ .../com/kusitms/jipbap/config/S3Config.java | 33 +++++++++++++++++++ .../kusitms/jipbap/food/FoodController.java | 2 +- .../kusitms/jipbap/test/TestController.java | 14 ++++++++ src/main/resources/application.yml | 14 ++++++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/kusitms/jipbap/config/S3Config.java diff --git a/build.gradle b/build.gradle index 5f35045..79ab719 100644 --- a/build.gradle +++ b/build.gradle @@ -66,6 +66,8 @@ dependencies { annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" + //s3 bucket (img) + implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/src/main/java/com/kusitms/jipbap/config/S3Config.java b/src/main/java/com/kusitms/jipbap/config/S3Config.java new file mode 100644 index 0000000..3475e96 --- /dev/null +++ b/src/main/java/com/kusitms/jipbap/config/S3Config.java @@ -0,0 +1,33 @@ +package com.kusitms.jipbap.config; + +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class S3Config { + + @Value("${cloud.aws.credentials.access-key}") + private String accessKey; + + @Value("${cloud.aws.credentials.secret-key}") + private String secretKey; + + @Value("${cloud.aws.region.static}") + private String region; + + @Bean + public AmazonS3Client amazonS3Client() { + BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); + + return (AmazonS3Client) AmazonS3ClientBuilder + .standard() + .withRegion(region) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/kusitms/jipbap/food/FoodController.java b/src/main/java/com/kusitms/jipbap/food/FoodController.java index 1abb00d..acb7c4c 100644 --- a/src/main/java/com/kusitms/jipbap/food/FoodController.java +++ b/src/main/java/com/kusitms/jipbap/food/FoodController.java @@ -18,7 +18,7 @@ public class FoodController { private final FoodService foodService; - @Operation(summary = "가게 등록하기") + @Operation(summary = "음식 등록하기") @PostMapping public CommonResponse registerFood(@Auth AuthInfo authInfo, RegisterFoodRequestDto dto) { return new CommonResponse<>(foodService.registerFood(authInfo.getEmail(), dto)); diff --git a/src/main/java/com/kusitms/jipbap/test/TestController.java b/src/main/java/com/kusitms/jipbap/test/TestController.java index 1f72f06..26d449d 100644 --- a/src/main/java/com/kusitms/jipbap/test/TestController.java +++ b/src/main/java/com/kusitms/jipbap/test/TestController.java @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -34,4 +35,17 @@ public String test2(@Auth AuthInfo authInfo) { User user = userRepository.findByEmail(authInfo.getEmail()).orElseThrow(()->new InvalidEmailException("회원정보가 존재하지 않습니다.")); return "Healthy Connection"; } + + @Operation(summary = "s3 이미지 저장 테스트") + @PostMapping("/image") + public String saveImageTest() { + return null; + } + + @Operation(summary = "s3 이미지 조회 테스트") + @GetMapping("/image") + public String getImageTest() { + return null; + } + } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cc2af70..7732259 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -37,6 +37,20 @@ spring: host: ${REDIS_URL} port: ${REDIS_PORT} +cloud: + aws: + s3: + bucket: ${BUCKET_NAME} + credentials: + access-key: ${BUCKET_ACCESS_KEY} + secret-key: ${BUCKET_SECRET_KEY} + region: + static: ap-northeast-2 + auto: false + stack: + auto: false + + secret: pwd: ${SECRET_PWD} jwt: ${SECRET_JWT} \ No newline at end of file