Skip to content

Commit 457ae3a

Browse files
committed
refactor: ImageConstants 분리 및 kustomization에 minio 리소스 추가
1 parent 2b04ece commit 457ae3a

4 files changed

Lines changed: 26 additions & 15 deletions

File tree

k8s/kustomization.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ resources:
1010
- redis/deployment.yaml
1111
- redis/service.yaml
1212
- redis/pvc.yaml
13+
- minio/deployment.yaml
14+
- minio/service.yaml
1315
images:
1416
- name: ghcr.io/semosan/semosan_be
1517
newTag: d478edb1ff6f35bd62da2ca5902af0b38a4914fe

src/main/java/com/semosan/api/common/config/MinioConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.semosan.api.common.config;
22

3-
import com.semosan.api.domain.image.service.ImageService;
3+
import com.semosan.api.domain.image.constant.ImageConstants;
44
import io.minio.BucketExistsArgs;
55
import io.minio.MakeBucketArgs;
66
import io.minio.MinioClient;
@@ -30,7 +30,7 @@ public MinioClient minioClient() {
3030
@PostConstruct
3131
public void initBuckets() {
3232
MinioClient client = minioClient();
33-
for (String bucket : ImageService.ALLOWED_BUCKETS) {
33+
for (String bucket : ImageConstants.ALLOWED_BUCKETS) {
3434
try {
3535
if (!client.bucketExists(BucketExistsArgs.builder().bucket(bucket).build())) {
3636
client.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.semosan.api.domain.image.constant;
2+
3+
import java.util.Map;
4+
import java.util.Set;
5+
6+
public final class ImageConstants {
7+
8+
private ImageConstants() {}
9+
10+
public static final Set<String> ALLOWED_BUCKETS = Set.of("reviews", "mountains", "restaurants", "posts", "semofeed");
11+
public static final Set<String> ALLOWED_EXTENSIONS = Set.of(".jpg", ".jpeg", ".png", ".webp");
12+
public static final Map<String, String> CONTENT_TYPE_MAP = Map.of(
13+
".jpg", "image/jpeg",
14+
".jpeg", "image/jpeg",
15+
".png", "image/png",
16+
".webp", "image/webp"
17+
);
18+
}

src/main/java/com/semosan/api/domain/image/service/ImageService.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.semosan.api.common.config.MinioProperties;
44
import com.semosan.api.common.exception.GeneralException;
55
import com.semosan.api.common.status.ErrorStatus;
6+
import com.semosan.api.domain.image.constant.ImageConstants;
67
import com.semosan.api.domain.image.dto.response.PresignedUrlResponse;
78
import io.minio.GetPresignedObjectUrlArgs;
89
import io.minio.MinioClient;
@@ -11,23 +12,13 @@
1112
import org.springframework.stereotype.Service;
1213

1314
import java.util.Map;
14-
import java.util.Set;
1515
import java.util.UUID;
1616
import java.util.concurrent.TimeUnit;
1717

1818
@Service
1919
@RequiredArgsConstructor
2020
public class ImageService {
2121

22-
public static final Set<String> ALLOWED_BUCKETS = Set.of("reviews", "mountains", "restaurants", "posts", "semofeed");
23-
private static final Set<String> ALLOWED_EXTENSIONS = Set.of(".jpg", ".jpeg", ".png", ".webp");
24-
private static final Map<String, String> CONTENT_TYPE_MAP = Map.of(
25-
".jpg", "image/jpeg",
26-
".jpeg", "image/jpeg",
27-
".png", "image/png",
28-
".webp", "image/webp"
29-
);
30-
3122
private final MinioClient minioClient;
3223
private final MinioProperties minioProperties;
3324

@@ -39,7 +30,7 @@ public PresignedUrlResponse generatePresignedUrl(String bucket, String filename)
3930
String key = UUID.randomUUID() + extension;
4031

4132
try {
42-
String contentType = CONTENT_TYPE_MAP.get(extension.toLowerCase());
33+
String contentType = ImageConstants.CONTENT_TYPE_MAP.get(extension.toLowerCase());
4334
String uploadUrl = minioClient.getPresignedObjectUrl(
4435
GetPresignedObjectUrlArgs.builder()
4536
.method(Method.PUT)
@@ -60,13 +51,13 @@ public PresignedUrlResponse generatePresignedUrl(String bucket, String filename)
6051
}
6152

6253
private void validateBucket(String bucket) {
63-
if (bucket == null || !ALLOWED_BUCKETS.contains(bucket)) {
54+
if (bucket == null || !ImageConstants.ALLOWED_BUCKETS.contains(bucket)) {
6455
throw new GeneralException(ErrorStatus.INVALID_IMAGE_BUCKET);
6556
}
6657
}
6758

6859
private void validateExtension(String extension) {
69-
if (extension.isEmpty() || !ALLOWED_EXTENSIONS.contains(extension.toLowerCase())) {
60+
if (extension.isEmpty() || !ImageConstants.ALLOWED_EXTENSIONS.contains(extension.toLowerCase())) {
7061
throw new GeneralException(ErrorStatus.INVALID_IMAGE_EXTENSION);
7162
}
7263
}

0 commit comments

Comments
 (0)