### 🎟️ 상위 작업 (Ticket Number) OT-64 ### 🌳 브랜치명 (Branch) feature/upload-api ### 📝 상세 내용 (Description) - 관리자 업로드 init API 신규 구현 - 시리즈/콘텐츠/숏폼 업로드 초기화 엔드포인트 추가 - 권한 정책 적용 - 시리즈/콘텐츠: ADMIN - 숏폼: ADMIN, EDITOR - Presigned URL 발급 로직 구현(S3) - 업로드 대상 URL 저장 방식 정리 - DB에 object key 기반 S3 URL 저장 - presigned URL은 업로드 전용으로 응답 - 파일명 sanitize 적용 - 특수문자/경로문자 제거 - 미지원 확장자 업로드 차단(INVALID_INPUT) - 숏폼 연관 대상 검증 강화 - seriesId, contentsId 중 정확히 하나만 허용 - 도메인 엔티티 갱신 메서드 추가 - Media.updateImageKeys - Contents.updateStorageKeys - ShortForm.updateStorageKeys ### ✅ TO-DO LIST - [ ] Task1: 관리자 업로드 init API(시리즈/콘텐츠/숏폼) 엔드포인트 구현 - [ ] Task2: 업로드 엔드포인트 권한 정책 적용 (시리즈/콘텐츠=ADMIN, 숏폼=ADMIN|EDITOR) - [ ] Task3: S3 Presigned URL 발급 로직 구현 - [ ] Task4: 업로드 URL 저장 방식 정리 (DB=S3 URL 저장, 응답=업로드용 presigned URL) - [ ] Task5: 파일명 sanitize 적용 (특수문자/경로문자 제거) - [ ] Task6: 미지원 확장자 업로드 차단 (INVALID_INPUT) - [ ] Task7: 숏폼 연관 대상 검증 강화 (seriesId, contentsId 중 정확히 하나만 허용) - [ ] Task8: 도메인 엔티티 갱신 메서드 추가 (Media.updateImageKeys, Contents.updateStorageKeys, ShortForm.updateStorageKeys) ### 📌 기타 사항 _No response_
🎟️ 상위 작업 (Ticket Number)
OT-64
🌳 브랜치명 (Branch)
feature/upload-api
📝 상세 내용 (Description)
✅ TO-DO LIST
📌 기타 사항
No response