From 3a9d68683555131c892ce6703f83f5205c4bda5b Mon Sep 17 00:00:00 2001 From: jihoo2002 Date: Sun, 19 Jan 2025 01:51:38 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat=20=EC=9D=BC=EA=B8=B0=20crud=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../diary/controller/DiaryController.java | 55 ++++++++ .../team_24/domain/diary/domain/Diary.java | 17 +++ .../domain/diary/dto/DiaryRequestDto.java | 11 ++ .../domain/diary/dto/DiaryResponseDto.java | 34 +++++ .../diary/repository/DiaryRepository.java | 8 ++ .../domain/diary/service/DiaryService.java | 122 ++++++++++++++++ .../domain/diaryPhoto/domain/DiaryPhoto.java | 30 ++++ .../repository/DiaryPhotoRepository.java | 12 ++ .../domain/s3/controller/AwsS3Controller.java | 33 +++++ .../domain/user/dto/UserResponseDto.java | 5 +- .../team_24/global/aws/AwsS3Service.java | 131 +++++++++--------- src/main/resources/empty.txt | 0 12 files changed, 390 insertions(+), 68 deletions(-) create mode 100644 src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java create mode 100644 src/main/java/GDGoC/team_24/domain/diary/dto/DiaryRequestDto.java create mode 100644 src/main/java/GDGoC/team_24/domain/diary/dto/DiaryResponseDto.java create mode 100644 src/main/java/GDGoC/team_24/domain/diary/repository/DiaryRepository.java create mode 100644 src/main/java/GDGoC/team_24/domain/diary/service/DiaryService.java create mode 100644 src/main/java/GDGoC/team_24/domain/diaryPhoto/domain/DiaryPhoto.java create mode 100644 src/main/java/GDGoC/team_24/domain/diaryPhoto/repository/DiaryPhotoRepository.java create mode 100644 src/main/java/GDGoC/team_24/domain/s3/controller/AwsS3Controller.java delete mode 100644 src/main/resources/empty.txt diff --git a/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java b/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java new file mode 100644 index 0000000..f776534 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java @@ -0,0 +1,55 @@ +package GDGoC.team_24.domain.diary.controller; + +import GDGoC.team_24.domain.diary.dto.DiaryRequestDto; +import GDGoC.team_24.domain.diary.dto.DiaryResponseDto; +import GDGoC.team_24.domain.diary.service.DiaryService; +import GDGoC.team_24.global.ApiResponse; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/diary") +public class DiaryController { + + private final DiaryService diaryService; + + @PostMapping + @Operation(summary = "일기 작성 API", description = "일기 생성하는 API입니다.") + public ApiResponse createDiary(@RequestPart(name = "diary") DiaryRequestDto userRequestDto, + @RequestPart(name = "ImageFile", required = false) List imgs + ) { + return ApiResponse.onSuccess(diaryService.createDiary(userRequestDto, imgs)); + + } + + @PostMapping("/{diaryId}") + @Operation(summary = "일기조회 API", description = "일기 조회하는 API입니다.") + public ApiResponse getDiary(@PathVariable Long diaryId) { + + return ApiResponse.onSuccess( diaryService.getDiary(diaryId)); + + } + + @PatchMapping("{diaryId}") + @Operation(summary = "일기 수정 API", description = "일기 수정하는 API입니다.") + public ApiResponse updateDiary(@PathVariable Long diaryId, + @RequestPart(name = "diary") DiaryRequestDto userRequestDto, + @RequestPart(name = "ImageFile", required = false) List imgs) { + + return ApiResponse.onSuccess( diaryService.updateDiary(diaryId, userRequestDto, imgs)); + + } + + @DeleteMapping("{diaryId}") + @Operation(summary = "일기삭제 API", description = "일기 삭제하는 API입니다.") + public ApiResponse deleteDiary(@PathVariable Long diaryId) { + + return ApiResponse.onSuccess("일기가 성공적으로 삭제되었습니다."); + } + +} diff --git a/src/main/java/GDGoC/team_24/domain/diary/domain/Diary.java b/src/main/java/GDGoC/team_24/domain/diary/domain/Diary.java index 1baf510..9249b03 100644 --- a/src/main/java/GDGoC/team_24/domain/diary/domain/Diary.java +++ b/src/main/java/GDGoC/team_24/domain/diary/domain/Diary.java @@ -1,7 +1,9 @@ package GDGoC.team_24.domain.diary.domain; +import GDGoC.team_24.domain.diary.dto.DiaryRequestDto; import GDGoC.team_24.domain.user.domain.User; import jakarta.persistence.*; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @@ -26,4 +28,19 @@ public class Diary { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; + + @Builder + public Diary(String content, LocalDateTime date, TODAYEMTION todayEmtion, User user) { + this.content = content; + this.date = date; + this.todayEmtion = todayEmtion; + this.user = user; + } + + public void update(DiaryRequestDto userRequestDto) { + this.content = content; + this.date = date; + this.todayEmtion = todayEmtion; + this.user = user; + } } diff --git a/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryRequestDto.java b/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryRequestDto.java new file mode 100644 index 0000000..52cf467 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryRequestDto.java @@ -0,0 +1,11 @@ +package GDGoC.team_24.domain.diary.dto; + +import java.time.LocalDateTime; +import java.util.List; + +public record DiaryRequestDto( + LocalDateTime date, + String content, + Long userId, + String todayEmotion) { +} diff --git a/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryResponseDto.java b/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryResponseDto.java new file mode 100644 index 0000000..2664145 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diary/dto/DiaryResponseDto.java @@ -0,0 +1,34 @@ +package GDGoC.team_24.domain.diary.dto; + +import GDGoC.team_24.domain.diary.domain.Diary; + +import GDGoC.team_24.domain.diaryPhoto.domain.DiaryPhoto; +import GDGoC.team_24.domain.user.domain.User; + + + +import java.util.List; +import java.util.stream.Collectors; + +public record DiaryResponseDto( + Long id, + Long userId, + String content, + String date, + String todayEmotion, + List photoUrls +) { + + public DiaryResponseDto(Diary diary, List diaryPhotos) { + this( + diary.getId(), + diary.getUser().getId(), + diary.getContent(), + diary.getDate().toString(), + diary.getTodayEmtion().toString(), + diaryPhotos.stream().map(DiaryPhoto::getPhotoUrl).collect(Collectors.toList()) + ); + } + + +} diff --git a/src/main/java/GDGoC/team_24/domain/diary/repository/DiaryRepository.java b/src/main/java/GDGoC/team_24/domain/diary/repository/DiaryRepository.java new file mode 100644 index 0000000..96e6376 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diary/repository/DiaryRepository.java @@ -0,0 +1,8 @@ +package GDGoC.team_24.domain.diary.repository; + + +import GDGoC.team_24.domain.diary.domain.Diary; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface DiaryRepository extends JpaRepository { +} diff --git a/src/main/java/GDGoC/team_24/domain/diary/service/DiaryService.java b/src/main/java/GDGoC/team_24/domain/diary/service/DiaryService.java new file mode 100644 index 0000000..63aaad1 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diary/service/DiaryService.java @@ -0,0 +1,122 @@ +package GDGoC.team_24.domain.diary.service; + +import GDGoC.team_24.domain.diary.domain.Diary; +import GDGoC.team_24.domain.diary.dto.DiaryResponseDto; +import GDGoC.team_24.domain.diaryPhoto.domain.DiaryPhoto; +import GDGoC.team_24.domain.diary.domain.TODAYEMTION; +import GDGoC.team_24.domain.diary.dto.DiaryRequestDto; +import GDGoC.team_24.domain.diary.repository.DiaryRepository; +import GDGoC.team_24.domain.diaryPhoto.repository.DiaryPhotoRepository; +import GDGoC.team_24.domain.user.domain.User; +import GDGoC.team_24.domain.user.repository.UserRepository; +import GDGoC.team_24.global.code.status.ErrorStatus; +import GDGoC.team_24.global.exception.GeneralException; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import GDGoC.team_24.global.aws.AwsS3Service; + +import java.util.ArrayList; +import java.util.List; + + +@Service +@RequiredArgsConstructor +public class DiaryService { + + private final DiaryRepository diaryRepository; + private final DiaryPhotoRepository diaryPhotoRepository; + private final UserRepository userRepository; + private final AwsS3Service awsS3Service; + + public DiaryResponseDto createDiary(DiaryRequestDto userRequestDto, List imgs) { + + User user = userRepository.findById(userRequestDto.userId()) + .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); + + TODAYEMTION todayemtion = TODAYEMTION.valueOf(userRequestDto.todayEmotion().toUpperCase()); + + // Diary 객체 생성 + Diary diary = Diary.builder() + .content(userRequestDto.content()) + .date(userRequestDto.date()) + .todayEmtion(todayemtion) + .user(user) + .build(); + + diaryRepository.save(diary); + + // Diary에 포함될 사진들 저장 + List diaryPhotos = new ArrayList<>(); + for (MultipartFile img : imgs) { + String imgUrl = awsS3Service.uploadFile(img); + + DiaryPhoto photo = DiaryPhoto.builder() + .diary(diary) + .photoUrl(imgUrl) + .build(); + + diaryPhotoRepository.save(photo); + diaryPhotos.add(photo); + } + + // Diary와 관련된 사진들을 포함하는 DTO 반환 + return new DiaryResponseDto(diary, diaryPhotos); + } + + + public DiaryResponseDto getDiary(Long diaryId) { + + Diary diary = diaryRepository.findById(diaryId) + .orElseThrow(() -> new GeneralException(ErrorStatus._BAD_REQUEST)); + + List diaryPhotos = diaryPhotoRepository.findByDiary(diary); + + return new DiaryResponseDto(diary, diaryPhotos); + } + + public DiaryResponseDto updateDiary(Long diaryId, DiaryRequestDto userRequestDto, List imgs) { + + Diary diary = diaryRepository.findById(diaryId) + .orElseThrow(() -> new GeneralException(ErrorStatus._BAD_REQUEST)); + + + Diary updateDiary = Diary.builder() + .date(userRequestDto.date()) + .content(userRequestDto.content()) + .todayEmtion(diary.getTodayEmtion()) + .todayEmtion(diary.getTodayEmtion()) + .user(diary.getUser()) + .build(); + + diaryRepository.save(updateDiary); + + + List existingPhotos = diaryPhotoRepository.findByDiary(diary); + for (DiaryPhoto photo : existingPhotos) { + awsS3Service.deleteFile(photo.getPhotoUrl()); + diaryPhotoRepository.delete(photo); + } + + List diaryPhotos = new ArrayList<>(); + + for (MultipartFile img : imgs) { + String imgUrl = awsS3Service.uploadFile(img); + DiaryPhoto newPhoto = DiaryPhoto.builder() + .diary(updateDiary) + .photoUrl(imgUrl) + .build(); + diaryPhotoRepository.save(newPhoto); + diaryPhotos.add(newPhoto); + } + + return new DiaryResponseDto(updateDiary, diaryPhotos); + + } + + public void deleteDiary(Long diaryId) { + + diaryRepository.deleteById(diaryId); + } + } + diff --git a/src/main/java/GDGoC/team_24/domain/diaryPhoto/domain/DiaryPhoto.java b/src/main/java/GDGoC/team_24/domain/diaryPhoto/domain/DiaryPhoto.java new file mode 100644 index 0000000..1a7d7bd --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diaryPhoto/domain/DiaryPhoto.java @@ -0,0 +1,30 @@ +package GDGoC.team_24.domain.diaryPhoto.domain; + +import GDGoC.team_24.domain.diary.domain.Diary; +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class DiaryPhoto { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String photoUrl; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "diaryId") + private Diary diary; + + @Builder + public DiaryPhoto(String photoUrl, Diary diary) { + this.photoUrl = photoUrl; + this.diary = diary; + } + +} diff --git a/src/main/java/GDGoC/team_24/domain/diaryPhoto/repository/DiaryPhotoRepository.java b/src/main/java/GDGoC/team_24/domain/diaryPhoto/repository/DiaryPhotoRepository.java new file mode 100644 index 0000000..b402a33 --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/diaryPhoto/repository/DiaryPhotoRepository.java @@ -0,0 +1,12 @@ +package GDGoC.team_24.domain.diaryPhoto.repository; + +import GDGoC.team_24.domain.diary.domain.Diary; +import GDGoC.team_24.domain.diaryPhoto.domain.DiaryPhoto; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface DiaryPhotoRepository extends JpaRepository { + + List findByDiary(Diary diary); +} diff --git a/src/main/java/GDGoC/team_24/domain/s3/controller/AwsS3Controller.java b/src/main/java/GDGoC/team_24/domain/s3/controller/AwsS3Controller.java new file mode 100644 index 0000000..79f8dea --- /dev/null +++ b/src/main/java/GDGoC/team_24/domain/s3/controller/AwsS3Controller.java @@ -0,0 +1,33 @@ +//package GDGoC.team_24.domain.s3.controller; +// +//import GDGoC.team_24.domain.s3.service.AwsS3Service; +//import GDGoC.team_24.global.ApiResponse; +//import GDGoC.team_24.global.code.status.SuccessStatus; +//import lombok.RequiredArgsConstructor; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RequestPart; +//import org.springframework.web.bind.annotation.RestController; +//import org.springframework.web.multipart.MultipartFile; +// +//import java.util.ArrayList; +//import java.util.List; +// +//@RestController +//@RequiredArgsConstructor +//@RequestMapping("api/s3") +//public class AwsS3Controller { +// +// private final AwsS3Service awsS3Service; +// @PostMapping(consumes = "multipart/form-data") +// public ApiResponse> s3upload(@RequestPart(required = false) List imgs) { +// List img_urls = new ArrayList<>(); +// for(MultipartFile img : imgs){ +// img_urls.add(awsS3Service.uploadFile(img)); +// } +// return ApiResponse.of(SuccessStatus._OK,img_urls); +// } +//} +// +// +// diff --git a/src/main/java/GDGoC/team_24/domain/user/dto/UserResponseDto.java b/src/main/java/GDGoC/team_24/domain/user/dto/UserResponseDto.java index a76a6de..c825b46 100644 --- a/src/main/java/GDGoC/team_24/domain/user/dto/UserResponseDto.java +++ b/src/main/java/GDGoC/team_24/domain/user/dto/UserResponseDto.java @@ -10,7 +10,8 @@ public record UserResponseDto( String name, String emoji, String phoneNumber, - Family family + Long familyId + ) { public UserResponseDto(User user) { this( @@ -20,7 +21,7 @@ public UserResponseDto(User user) { user.getName(), user.getEmoji().toString(), user.getPhoneNumber(), - user.getFamily() + user.getFamily().getId() ); } } diff --git a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java index 33a2c3d..c067919 100644 --- a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java +++ b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java @@ -1,66 +1,65 @@ -package GDGoC.team_24.global.aws; - -import GDGoC.team_24.global.code.status.ErrorStatus; -import GDGoC.team_24.global.exception.S3Handler; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.model.DeleteObjectRequest; -import com.amazonaws.services.s3.model.ObjectMetadata; -import com.amazonaws.services.s3.model.PutObjectRequest; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.io.InputStream; -import java.util.UUID; - - -@Service -@RequiredArgsConstructor -public class AwsS3Service { - @Value("${cloud.aws.s3.bucket}") - private String bucket; - - private final AmazonS3 amazonS3; - - public String uploadFile(MultipartFile multipartFile){ - - if (multipartFile == null || multipartFile.isEmpty()) { - return null; - } - - String fileName = createFileName(multipartFile.getOriginalFilename()); - ObjectMetadata objectMetadata = new ObjectMetadata(); - objectMetadata.setContentLength(multipartFile.getSize()); - objectMetadata.setContentType(multipartFile.getContentType()); - - System.out.println(multipartFile.getContentType()); - - try(InputStream inputStream = multipartFile.getInputStream()){ - amazonS3.putObject(new PutObjectRequest(bucket, fileName, inputStream, objectMetadata)); - } catch (IOException e){ - throw new S3Handler(ErrorStatus.S3_FAILED); - } - - return "https://" + bucket + ".s3.ap-northeast-2.amazonaws.com/" + fileName; - } - - // 파일 업로드시, 파일명을 난수화하기 위해 UUID를 활용 - public String createFileName(String fileName){ - return UUID.randomUUID().toString().concat(getFileExtension(fileName)); - } - - private String getFileExtension(String fileName){ - try{ - return fileName.substring(fileName.lastIndexOf(".")); - } catch (StringIndexOutOfBoundsException e){ - throw new S3Handler(ErrorStatus.S3_FORMAT); - } - } - - - public void deleteFile(String fileName){ - amazonS3.deleteObject(new DeleteObjectRequest(bucket, fileName)); - } -} +package GDGoC.team_24.global.aws; + +import GDGoC.team_24.global.code.status.ErrorStatus; +import GDGoC.team_24.global.exception.S3Handler; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.DeleteObjectRequest; +import com.amazonaws.services.s3.model.ObjectMetadata; +import com.amazonaws.services.s3.model.PutObjectRequest; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.InputStream; +import java.util.UUID; + + +@Service +@RequiredArgsConstructor +public class AwsS3Service { + @Value("${cloud.aws.s3.bucket}") + private String bucket; + + private final AmazonS3 amazonS3; + + public String uploadFile(MultipartFile multipartFile){ + + if (multipartFile == null || multipartFile.isEmpty()) { + return null; + } + + String fileName = createFileName(multipartFile.getOriginalFilename()); + ObjectMetadata objectMetadata = new ObjectMetadata(); + objectMetadata.setContentLength(multipartFile.getSize()); + objectMetadata.setContentType(multipartFile.getContentType()); + + System.out.println(multipartFile.getContentType()); + + try(InputStream inputStream = multipartFile.getInputStream()){ + amazonS3.putObject(new PutObjectRequest(bucket, fileName, inputStream, objectMetadata)); + } catch (IOException e){ + throw new S3Handler(ErrorStatus.S3_FAILED); + } + + return "https://" + bucket + ".s3.ap-northeast-2.amazonaws.com/" + fileName; + } + + // 파일 업로드시, 파일명을 난수화하기 위해 UUID를 활용 + public String createFileName(String fileName){ + return UUID.randomUUID().toString().concat(getFileExtension(fileName)); + } + + private String getFileExtension(String fileName){ + try{ + return fileName.substring(fileName.lastIndexOf(".")); + } catch (StringIndexOutOfBoundsException e){ + throw new S3Handler(ErrorStatus.S3_FORMAT); + } + } + + + public void deleteFile(String fileName){ + amazonS3.deleteObject(new DeleteObjectRequest(bucket, fileName)); + } +} diff --git a/src/main/resources/empty.txt b/src/main/resources/empty.txt deleted file mode 100644 index e69de29..0000000 From 4b8e7deb55e07ad5923cd7f63d12bc99772a8700 Mon Sep 17 00:00:00 2001 From: jihoo2002 Date: Sun, 19 Jan 2025 02:03:29 +0900 Subject: [PATCH 2/5] =?UTF-8?q?modify=20=EC=82=AD=EC=A0=9C=20api=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 --- .../GDGoC/team_24/domain/diary/controller/DiaryController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java b/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java index f776534..91c050d 100644 --- a/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java +++ b/src/main/java/GDGoC/team_24/domain/diary/controller/DiaryController.java @@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; - import java.util.List; @RestController @@ -49,6 +48,8 @@ public ApiResponse updateDiary(@PathVariable Long diaryId, @Operation(summary = "일기삭제 API", description = "일기 삭제하는 API입니다.") public ApiResponse deleteDiary(@PathVariable Long diaryId) { + diaryService.deleteDiary(diaryId); + return ApiResponse.onSuccess("일기가 성공적으로 삭제되었습니다."); } From 196aa9fecbfbcf942c44fb128f35c8ce9a6e022b Mon Sep 17 00:00:00 2001 From: jihoo2002 Date: Sun, 19 Jan 2025 02:21:04 +0900 Subject: [PATCH 3/5] =?UTF-8?q?add=20empty.txt=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/empty.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/empty.txt diff --git a/src/main/resources/empty.txt b/src/main/resources/empty.txt new file mode 100644 index 0000000..e69de29 From dfa71d0add23d48c58d76fe53575cacac60bf7fc Mon Sep 17 00:00:00 2001 From: jihoo2002 Date: Sun, 19 Jan 2025 02:31:54 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix=20s3=20=EC=9E=98=EB=AA=BB=EB=90=9C=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java index 7f6e154..9423346 100644 --- a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java +++ b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java @@ -1,7 +1,8 @@ package GDGoC.team_24.global.aws; import GDGoC.team_24.global.code.status.ErrorStatus; -import GDGoC.team_24.global.exception.S3Handler; + +import GDGoC.team_24.global.exception.Handler.S3Handler; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.DeleteObjectRequest; import com.amazonaws.services.s3.model.ObjectMetadata; From dc22935f1c9732c721e1d1830db6913c4fc77626 Mon Sep 17 00:00:00 2001 From: jihoo2002 Date: Sun, 19 Jan 2025 02:51:13 +0900 Subject: [PATCH 5/5] fix s3 --- src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java index 9423346..99e1e1c 100644 --- a/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java +++ b/src/main/java/GDGoC/team_24/global/aws/AwsS3Service.java @@ -19,6 +19,8 @@ @Service @RequiredArgsConstructor public class AwsS3Service { + + @Value("${cloud.aws.s3.bucket}") private String bucket;