Skip to content

아바타 이미지 조회 URL을 S3 Presigned URL로 발급 - #49

Merged
jyx-07 merged 3 commits into
developfrom
feat/avatar-image-presigned-url
Jul 23, 2026
Merged

아바타 이미지 조회 URL을 S3 Presigned URL로 발급#49
jyx-07 merged 3 commits into
developfrom
feat/avatar-image-presigned-url

Conversation

@jyx-07

@jyx-07 jyx-07 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

✨ 작업 내용

아바타 이미지 URL을 조회 시점마다 S3 presigned URL로 발급하도록 변경했습니다. 기존에는 영구 공개 URL을 DB에 저장해 그대로 응답했지만, 이제는 조회할 때마다 만료 시간이 있는 서명된 URL을 새로 생성해 내려줍니다.


🔍 리뷰 시 참고사항

  • 클라이언트가 URL의 만료 파라미터를 조작해도 무한 접근할 수 없도록, 만료 검증 자체를 S3(또는 MinIO)에 위임하는 구조입니다. 서버는 S3Presigner.presignGetObject()로 서명된 URL을 발급만 합니다.
  • AWS SDK 2.44.12부터는 S3Presigner가 별도 s3-presigner 모듈이 아니라 기존 s3 모듈에 포함되어 있어, 별도 의존성 추가 없이 구현했습니다.
  • 만료 시간은 aws.s3.presigned-url-expiration-seconds(S3_PRESIGNED_URL_EXPIRATION_SECONDS, 기본 3600초)로 설정 가능합니다.
  • avatar.imageUrl에 저장되는 값의 포맷(toPublicUrl이 만드는 공개 URL 문자열)은 그대로 유지하고, 이 값에서 key를 추출해 presigned URL을 생성하는 방식이라 DB 마이그레이션은 필요 없습니다.
  • 로컬 MinIO는 현재 버킷이 공개(mc anonymous set download)로 설정되어 있어, presigned URL 없이도 공개 URL로 직접 접근이 가능한 상태입니다. 실제로 만료를 강제하려면 버킷 공개 정책 제거가 추가로 필요하며, 이번 PR에서는 코드 변경만 다룹니다.

✅ 체크리스트

  • 문서(README, .env.example 등) 변경이 필요한 경우 작성 또는 수정했나요?
  • 작업한 코드가 정상적으로 동작하는 것을 직접 확인했나요?
  • 필요한 경우 테스트 코드를 작성하거나 수정했나요?
  • Merge 대상 브랜치를 올바르게 설정했나요?
  • PR에 관련 없는 작업이 포함되지 않았나요?
  • 적절한 라벨과 리뷰어를 설정했나요?

@jyx-07 jyx-07 added the ✨ Feature 신규 기능 label Jul 23, 2026
@jyx-07 jyx-07 self-assigned this Jul 23, 2026
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@jyx-07
jyx-07 requested a review from cfcromn July 23, 2026 01:40
@jyx-07
jyx-07 merged commit e4204b7 into develop Jul 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 신규 기능

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants