Skip to content

Commit

Permalink
refactor: 이미지 key 형식 수정 #33
Browse files Browse the repository at this point in the history
  • Loading branch information
jjt4515 committed Oct 12, 2024
1 parent 78b9a6f commit 99d7b2b
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
public class ImageController {
private final ImageService imageService;

// 이미지 업로드
// 이미지 정보 저장
@PostMapping
public ResponseEntity<?> saveImageInfo(@RequestBody ImageRequest imageRequest) {
Image savedImage = imageService.saveImage(imageRequest);
return ResponseEntity.ok(savedImage);
}

// 여러 이미지 업로드
// 여러 이미지 정보 저장
@PostMapping("/multiple")
public ResponseEntity<List<Image>> saveMultipleImages(@RequestBody List<ImageRequest> imageRequests) {
List<Image> savedImages = imageService.saveMultipleImages(imageRequests);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
import java.util.UUID;

@Service
@RequiredArgsConstructor
Expand Down Expand Up @@ -52,9 +53,10 @@ public String createPresignedPutUrl(String bucketName, String keyPrefix, Map<Str

// jpg 말고 다른 형식 파일 들어오는 경우에 대해서도 따로 처리 필요
// 주기적으로 s3 정리하는 스케줄러 구현 필요(사진 5개 이상이면 db에서 저장 안한것들은 지움)
// 극악의 확률로 url이 겹치면?? -> 일단 보류
// 극악의 확률로 url이 겹치면?? -> 그럴일 거의 없긴할텐데 생기면 s3 원래 파일 지워짐

String keyName = String.format("%s/%s/%s.jpg", keyPrefix, date, encodedTime);
String uniqueIdentifier = UUID.randomUUID().toString();
String keyName = String.format("%s/%s/%s_%s.jpg", keyPrefix, date, uniqueIdentifier, encodedTime);

PutObjectRequest objectRequest = PutObjectRequest.builder()
.bucket(bucketName)
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/poomasi/global/util/EncryptionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@
import java.security.MessageDigest;
import java.time.LocalDateTime;
import java.util.Base64;
import java.util.UUID;

@Component
public class EncryptionUtil {

public String encodeTime(LocalDateTime time) {
try {
String uniqueSuffix = UUID.randomUUID().toString(); // 추가 요소
String timeString = time.toString() + uniqueSuffix;
String timeString = time.toString();
byte[] hash = MessageDigest.getInstance("SHA-256")
.digest(timeString.getBytes(StandardCharsets.UTF_8));
return Base64.getUrlEncoder().withoutPadding().encodeToString(hash);
Expand Down

0 comments on commit 99d7b2b

Please sign in to comment.