우선순위: P2
현재 문제
src/lib/blog-admin.ts는 업로드 즉시 Supabase public URL을 만들지만 자산 교체, URL 초기화, 글 soft-delete 때 Storage 객체와 MediaAsset을 제거하지 않음. Storage 업로드 뒤 DB 트랜잭션이 실패해도 객체를 롤백하지 않음.
영향
한 번 노출된 이미지나 PDF URL을 회수할 수 없고 고아 객체가 계속 누적됨. draft에서 올린 파일도 URL을 알면 공개 접근 가능함.
기대 동작
- 자산 연결 해제와 글 삭제 시 Storage 수명주기 정책 적용
- DB 실패 시 업로드 객체 보상 삭제
- 민감 가능성이 있는 파일은 private bucket과 signed URL 검토
- 재시도에도 중복 삭제 오류가 발생하지 않도록 멱등 처리
검증 방법
우선순위: P2
현재 문제
src/lib/blog-admin.ts는 업로드 즉시 Supabase public URL을 만들지만 자산 교체, URL 초기화, 글 soft-delete 때 Storage 객체와MediaAsset을 제거하지 않음. Storage 업로드 뒤 DB 트랜잭션이 실패해도 객체를 롤백하지 않음.영향
한 번 노출된 이미지나 PDF URL을 회수할 수 없고 고아 객체가 계속 누적됨. draft에서 올린 파일도 URL을 알면 공개 접근 가능함.
기대 동작
검증 방법