Skip to content

Commit d2d3fe5

Browse files
authored
Merge pull request #83 from FixLog/develop
Develop
2 parents 10030fd + 4a37e6b commit d2d3fe5

File tree

7 files changed

+28
-10
lines changed

7 files changed

+28
-10
lines changed

src/main/java/com/example/FixLog/config/SecurityConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
3737
.requestMatchers(HttpMethod.GET, "/members/check-nickname").permitAll()
3838
.requestMatchers(HttpMethod.GET, "/", "/main", "/main/**").permitAll()
3939
.requestMatchers(HttpMethod.GET, "/posts/**").permitAll()
40+
41+
.requestMatchers("/api/s3/**").permitAll()
4042
// h2-console (로컬 테스트용)
4143
.requestMatchers(HttpMethod.GET, "/h2-console/**").permitAll()
4244
// 배포 확인용 임시 허용

src/main/java/com/example/FixLog/controller/MypageMemberController.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import jakarta.validation.Valid;
1717
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1818
import org.springframework.web.bind.annotation.*;
19+
import com.example.FixLog.dto.s3.PresignedUploadResponseDto;
20+
1921

2022
import java.util.Map;
2123

@@ -55,9 +57,9 @@ public ResponseEntity<Response<PresignResponseDto>> presignProfileImage(
5557
) {
5658
if (member == null) throw new CustomException(ErrorCode.UNAUTHORIZED);
5759

58-
String key = s3Service.generateKey("profile", filename);
59-
String uploadUrl = s3Service.generatePresignedUrl("profile", filename, 15);
60-
String fileUrl = s3Service.getObjectUrl(key);
60+
PresignedUploadResponseDto responseDto = s3Service.generatePresignedUploadUrl("profile", filename, 15);
61+
String uploadUrl = responseDto.getPresignedUrl();
62+
String fileUrl = responseDto.getFileUrl();
6163

6264
PresignResponseDto dto = new PresignResponseDto(uploadUrl, fileUrl);
6365
return ResponseEntity.ok(Response.success("Presigned URL 발급 성공", dto));
@@ -86,4 +88,4 @@ public ResponseEntity<Response<String>> editBio(
8688
memberService.editBio(member, requestDto.getBio());
8789
return ResponseEntity.ok(Response.success("소개글 수정 성공", "SUCCESS"));
8890
}
89-
}
91+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.example.FixLog.dto.s3;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@AllArgsConstructor
8+
public class PresignedUploadResponseDto {
9+
private String presignedUrl; // PUT 요청용 presigned URL
10+
private String fileUrl; // 업로드 완료 후 접근 가능한 S3 URL
11+
}
12+

src/main/java/com/example/FixLog/service/MainPageService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public MainPageService(PostRepository postRepository, MemberService memberServic
3030
// 이미지 null일 때 default 사진으로 변경 (프로필 사진,
3131
public String getDefaultImage(String image){
3232
String imageUrl = (image == null || image.isBlank())
33-
? "https://example.com/default-cover-image.png" : image;
33+
? "https://fixlog-bucket.s3.ap-northeast-2.amazonaws.com/default/profile.png" : image;
3434
System.out.println(imageUrl);
3535
return imageUrl;
3636
}

src/main/java/com/example/FixLog/service/PostService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public PostService(PostRepository postRepository, PostLikeRepository postLikeRep
5757
// 이미지 null일 때 default 사진으로 변경 (프로필 사진,
5858
public String getDefaultImage(String image){
5959
String imageUrl = (image == null || image.isBlank())
60-
? "https://example.com/default-cover-image.png" : image;
60+
? "https://fixlog-bucket.s3.ap-northeast-2.amazonaws.com/default/profile.png" : image;
6161
System.out.println(imageUrl);
6262
return imageUrl;
6363
}

src/main/java/com/example/FixLog/service/S3Service.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.amazonaws.services.s3.AmazonS3;
55
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
66
import com.amazonaws.services.s3.model.ObjectMetadata;
7+
import com.example.FixLog.dto.s3.PresignedUploadResponseDto;
78
import com.example.FixLog.exception.CustomException;
89
import com.example.FixLog.exception.ErrorCode;
910
import lombok.RequiredArgsConstructor;
@@ -46,7 +47,7 @@ public String generateKey(String dirName, String filename) {
4647
return dirName + "/" + UUID.randomUUID() + "_" + filename;
4748
}
4849

49-
public String generatePresignedUrl(String dirName, String filename, int minutes) {
50+
public PresignedUploadResponseDto generatePresignedUploadUrl(String dirName, String filename, int minutes) {
5051
String key = generateKey(dirName, filename);
5152
Date expiration = new Date(System.currentTimeMillis() + minutes * 60L * 1000L);
5253

@@ -55,10 +56,11 @@ public String generatePresignedUrl(String dirName, String filename, int minutes)
5556
.withExpiration(expiration);
5657

5758
URL url = amazonS3.generatePresignedUrl(request);
58-
return url.toString();
59+
60+
return new PresignedUploadResponseDto(url.toString(), getObjectUrl(key));
5961
}
6062

6163
public String getObjectUrl(String key) {
6264
return amazonS3.getUrl(bucket, key).toString();
6365
}
64-
}
66+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package com.example.FixLog.util;
22

33
public class DefaultImage {
4-
public static final String PROFILE = "https://dummyimage.com/200x200/cccccc/ffffff&text=Profile"; // 임시 기본 프로필 이미지
4+
public static final String PROFILE = "https://fixlog-bucket.s3.ap-northeast-2.amazonaws.com/default/profile.png";
55
}

0 commit comments

Comments
 (0)