HTML5 파일 API로 Amazon S3 멀티파트 업로드가 가능할까?
결론부터 말하자면, HTML5 파일 API(File API)와 Amazon S3의 멀티파트 업로드(Multipart Upload) 기능을 함께 사용하는 것은 충분히 가능합니다. 다만 이를 구현하려면 두 가지 사전 준비물이 필요합니다. 바로 백엔드 서버의 지원과 Amazon API 키입니다.
Amazon S3란 무엇인가?
Amazon S3(Simple Storage Service)는 아마존 웹 서비스(AWS)에서 제공하는 클라우드 스토리지 웹 서비스입니다. 웹 서비스 인터페이스를 통해 파일을 저장하고 관리할 수 있으며, 아마존은 2007년에 S3를 최초 출시했습니다. 현재는 이미지, 동영상, 백업 데이터 등 다양한 용도로 널리 활용되고 있습니다.
멀티파트 업로드 구현 절차
S3 멀티파트 업로드는 대용량 파일을 여러 개의 조각(part)으로 나누어 전송한 뒤 하나로 합치는 방식입니다. 구현 과정은 크게 다음과 같습니다.
1단계: 멀티파트 업로드 생성
먼저 Amazon API를 호출하여 멀티파트 업로드 세션을 생성합니다. 이때 서버는 key(파일명)와 upload id(업로드 ID)를 발급받아 웹 페이지로 되돌려 보내야 합니다.
2단계: 조각 데이터 직접 전송
각 파트의 데이터는 웹 브라우저에서 Amazon S3로 직접 전송합니다. 이를 위해서는 part upload URL(파트 업로드 URL)을 사용해야 하며, 요청 시 date(날짜 값)와 auth header(인증 헤더)를 반드시 포함시켜야 합니다.
정리
이처럼 HTML5 파일 API와 S3 멀티파트 업로드를 결합하면 대용량 파일을 안정적으로 업로드할 수 있습니다. 서버 측에서 인증과 업로드 ID 관리를 담당하고, 실제 파일 데이터는 클라이언트에서 S3로 직접 전송하는 구조이기 때문에 서버 부하도 줄일 수 있다는 장점이 있습니다.