Skip to content

Commit 518f004

Browse files
authored
fix: Remove presignedUrl ACL (#441)
* fix: remove presignedUrl ACL * fix: remove legacy createPresignedUrl
1 parent 04ce8e7 commit 518f004

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

src/main/java/com/depromeet/domain/image/application/ImageService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public PresignedUrlResponse createMissionRecordPresignedUrl(
5454
imageKey,
5555
request.imageFileExtension());
5656

57-
String presignedUrl = imageUtil.createPreSignedUrl(fileName, request.imageFileExtension());
57+
String presignedUrl = imageUtil.createUploadUrl(fileName, request.imageFileExtension());
5858

5959
missionRecord.updateUploadStatusPending();
6060
missionRecordTtlRepository.deleteById(request.missionRecordId());
@@ -100,7 +100,7 @@ public PresignedUrlResponse createMemberProfilePresignedUrl(
100100
imageKey,
101101
request.imageFileExtension());
102102

103-
String presignedUrl = imageUtil.createPreSignedUrl(fileName, request.imageFileExtension());
103+
String presignedUrl = imageUtil.createUploadUrl(fileName, request.imageFileExtension());
104104

105105
imageRepository.save(
106106
Image.createImage(

src/main/java/com/depromeet/global/util/ImageUtil.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
import com.depromeet.domain.image.domain.ImageFileExtension;
44
import com.depromeet.infra.config.s3.S3Properties;
5+
import java.net.URL;
56
import java.time.Duration;
67
import lombok.RequiredArgsConstructor;
78
import lombok.SneakyThrows;
89
import lombok.extern.slf4j.Slf4j;
910
import org.springframework.stereotype.Component;
10-
import software.amazon.awssdk.services.s3.model.ObjectCannedACL;
11+
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
1112
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
1213
import software.amazon.awssdk.services.s3.presigner.model.PutObjectPresignRequest;
1314

@@ -20,18 +21,24 @@ public class ImageUtil {
2021
private final S3Properties s3Properties;
2122

2223
@SneakyThrows
23-
public String createPreSignedUrl(String fileName, ImageFileExtension fileExtension) {
24-
PutObjectPresignRequest request =
24+
public String createUploadUrl(String fileName, ImageFileExtension fileExtension) {
25+
String contentType = getContentType(fileExtension);
26+
27+
PutObjectRequest putObj =
28+
PutObjectRequest.builder()
29+
.bucket(s3Properties.bucket())
30+
.key(fileName)
31+
.contentType(contentType) // content-type만 포함
32+
.build();
33+
34+
PutObjectPresignRequest presignReq =
2535
PutObjectPresignRequest.builder()
26-
.signatureDuration(Duration.ofMinutes(30))
27-
.putObjectRequest(
28-
builder ->
29-
builder.bucket(s3Properties.bucket())
30-
.key(fileName)
31-
.contentType(getContentType(fileExtension))
32-
.acl(ObjectCannedACL.PUBLIC_READ))
36+
.putObjectRequest(putObj)
37+
.signatureDuration(Duration.ofMinutes(15))
3338
.build();
34-
return s3Presigner.presignPutObject(request).url().toString();
39+
40+
URL url = s3Presigner.presignPutObject(presignReq).url();
41+
return url.toString();
3542
}
3643

3744
private static String getContentType(ImageFileExtension fileExtension) {

0 commit comments

Comments
 (0)