You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
파일·이미지의 공개 URL을 공통으로 조회할 수 있는 기능을 추가합니다. PR #69 리뷰에서 tnals0924님이 제안한 내용으로, ItemImageUrl처럼 응답마다 따로 만들던 URL 타입 대신 공통 FileUrl을 만들고, R2 연동(#59)은 이미 되어 있으니 key → 공개 URL 조립을 이 이슈에서 처리합니다.
📝 작업 상세 내용
core:domain:internal의 file 서브도메인을 core:domain:file 독립 모듈로 분리 (internal은 운영진 전용인데 file은 학생도 보는 이미지에 쓰여 위치가 안 맞음)
FileUrl(순수 URL)/FileInfo(파일명+URL) 신설
FileStorageClient/FileRepository/FileService에 key·id 기반 URL 조회 추가 (publicUrl(s), resolveUrl(s), resolveInfo(s))
infrastructure:db에 findAllByIdIn 배치 조회 추가 (N+1 방지)
infrastructure:client의 S3/Local 클라이언트에 공개 URL 조립 구현 + publicBaseUrl 설정값·환경변수 추가
로컬 스토리지 공개 GET 서빙 추가 (정적 리소스 핸들러 + 인증 예외 경로)
api:admin-api의 internal/file 패키지를 file로 이동 (URL 경로는 유지)
물품·공지 등 실제 응답 DTO에서 FileService를 호출해 공개 URL·파일명 채우기
어떤 기능인가요?
파일·이미지의 공개 URL을 공통으로 조회할 수 있는 기능을 추가합니다. PR #69 리뷰에서 tnals0924님이 제안한 내용으로,
ItemImageUrl처럼 응답마다 따로 만들던 URL 타입 대신 공통FileUrl을 만들고, R2 연동(#59)은 이미 되어 있으니 key → 공개 URL 조립을 이 이슈에서 처리합니다.📝 작업 상세 내용
core:domain:internal의file서브도메인을core:domain:file독립 모듈로 분리 (internal은 운영진 전용인데 file은 학생도 보는 이미지에 쓰여 위치가 안 맞음)FileUrl(순수 URL)/FileInfo(파일명+URL) 신설FileStorageClient/FileRepository/FileService에 key·id 기반 URL 조회 추가 (publicUrl(s),resolveUrl(s),resolveInfo(s))infrastructure:db에findAllByIdIn배치 조회 추가 (N+1 방지)infrastructure:client의 S3/Local 클라이언트에 공개 URL 조립 구현 +publicBaseUrl설정값·환경변수 추가api:admin-api의internal/file패키지를file로 이동 (URL 경로는 유지)FileService를 호출해 공개 URL·파일명 채우기📁 참고 자료 (선택)
ItemImageUrl관련 원 지적)