개요

대용량 영상 파일 업로드 시 단일 요청 방식은 네트워크 단절이나 타임아웃에 취약하고, 업로드 실패 시 처음부터 다시 전송해야 하는 문제가 있습니다.

이를 해결하기 위해 S3 Multipart Upload 기반 업로드 구조를 적용했습니다. 이 구조는 영상을 여러 파트로 나누어 업로드하고, 모든 파트 업로드가 끝난 뒤 최종적으로 병합하는 방식입니다.


본문

1) 전체 흐름

멀티파트 업로드는 크게 4단계로 진행됩니다.

  1. 업로드 초기화
  2. 파트별 Presigned URL 조회
  3. S3 직접 업로드
  4. 업로드 완료 요청

이 구조를 통해 서버는 업로드 세션과 메타데이터만 관리하고, 실제 대용량 바이너리 전송은 클라이언트가 S3로 직접 처리합니다.

2) 업로드 초기화

업로드 시작 시 클라이언트는 제목, 설명 등 메타데이터와 함께 업로드 초기화 API를 호출합니다.

POST /upload

이 단계에서 서버는 S3 Multipart Upload를 시작하고, 이후 단계에서 공통으로 사용하는 uploadId를 반환합니다.

즉, uploadId는 하나의 업로드 세션을 식별하는 핵심 값이며, 이후 파트 업로드와 완료 처리까지 계속 유지되어야 합니다. 또한 포스터나 썸네일은 이 응답에 포함된 별도 업로드 URL을 통해 단일 PUT 방식으로 처리할 수 있습니다.