diff --git a/hous-api/src/main/java/hous/api/service/image/client/S3FileStorageClient.java b/hous-api/src/main/java/hous/api/service/image/client/S3FileStorageClient.java index 4dc79c3c..55b222c0 100644 --- a/hous-api/src/main/java/hous/api/service/image/client/S3FileStorageClient.java +++ b/hous-api/src/main/java/hous/api/service/image/client/S3FileStorageClient.java @@ -22,7 +22,7 @@ @Component public class S3FileStorageClient implements FileStorageClient { - @Value("${cloud.aws.s3.rule-bucket}") + @Value("${cloud.aws.s3.bucket}") public String bucket; // S3 버킷 이름 private final AmazonS3 amazonS3; diff --git a/hous-api/src/main/java/hous/api/service/image/provider/S3Provider.java b/hous-api/src/main/java/hous/api/service/image/provider/S3Provider.java index c67b9fda..b88fc0d0 100644 --- a/hous-api/src/main/java/hous/api/service/image/provider/S3Provider.java +++ b/hous-api/src/main/java/hous/api/service/image/provider/S3Provider.java @@ -19,9 +19,10 @@ public class S3Provider { private final S3FileStorageClient fileStorageClient; - public UploadResponseDto uploadFile(UploadFileRequest request, MultipartFile file) { + public UploadResponseDto uploadFile(UploadFileRequest request, MultipartFile file, String dirName) { request.validateAvailableContentType(file.getContentType()); - String fileName = request.getFileNameWithBucketDirectory(file.getOriginalFilename()); + String fileName = String.join("/", dirName, + request.getFileNameWithBucketDirectory(file.getOriginalFilename())); String originalFileName = request.getCreateOriginalFileNameWithDate(file.getOriginalFilename()); validateImageMaxSize(file); fileStorageClient.uploadFile(file, fileName); diff --git a/hous-api/src/main/java/hous/api/service/rule/RuleService.java b/hous-api/src/main/java/hous/api/service/rule/RuleService.java index 502f627c..eb77b10a 100644 --- a/hous-api/src/main/java/hous/api/service/rule/RuleService.java +++ b/hous-api/src/main/java/hous/api/service/rule/RuleService.java @@ -52,6 +52,8 @@ @Transactional public class RuleService { + private static final String RULE_IMAGE_S3_DIR = "rule-image"; + private final RedisTemplate redisTemplate; private final UserRepository userRepository; @@ -113,7 +115,8 @@ public void createRule(CreateRuleInfoRequestDto request, Long userId, List s3ImageUrls = maybeImages.orElse(Collections.emptyList()).stream().map(image -> { - UploadResponseDto response = s3Provider.uploadFile(ImageUploadFileRequest.of(FileType.IMAGE), image); + UploadResponseDto response = s3Provider.uploadFile(ImageUploadFileRequest.of(FileType.IMAGE), image, + RULE_IMAGE_S3_DIR); return ruleImageRepository.save( RuleImage.newInstance(rule, response.getOriginalFileName(), response.getUploadFileName())); }).collect(Collectors.toList()); @@ -182,7 +185,8 @@ public void updateRule(UpdateRuleInfoRequestDto request, Long ruleId, Long userI // 이미지 s3에 추가 List s3ImageUrls = maybeRequestImages.stream().map(image -> { - UploadResponseDto response = s3Provider.uploadFile(ImageUploadFileRequest.of(FileType.IMAGE), image); + UploadResponseDto response = s3Provider.uploadFile(ImageUploadFileRequest.of(FileType.IMAGE), image, + RULE_IMAGE_S3_DIR); return ruleImageRepository.save( RuleImage.newInstance(rule, response.getOriginalFileName(), response.getUploadFileName())); }).collect(Collectors.toList());