파일 업로드
규칙
- Presigned URL을 사용하여 클라이언트가 서버를 거치지 않고 스토리지에 직접 업로드합니다.
- 5MB를 초과하는 파일은 멀티파트 업로드로 청크를 나누어 병렬 업로드합니다.
- 클라이언트 측 검증: 파일 타입과 크기 제한을 확인하며, 서버에서도 다시 검증합니다.
- 이미지 최적화: 업로드 시 리사이즈(최대 2048px), WebP 변환, EXIF 정보 제거를 수행합니다.
- 진행률 추적:
XMLHttpRequest또는fetch의ReadableStream을 사용하여 업로드 진행률을 추적합니다. - 지원 스토리지: S3, R2(Cloudflare), Supabase Storage — 모두 동일한 Presigned URL 패턴을 사용합니다.
- 서버 측 파일 타입 검증: 파일 확장자가 아닌 Magic Bytes를 확인합니다.
- 보안 강화 컨텍스트에서는 사용자 업로드 파일에 대한 바이러스 스캔을 수행합니다.