대용량 파일을 윈도우 애저 저장소에 업로드 하기

윈도우 애저에서 미디어 서비스를 하려고 하면, 대용량의 파일들을 윈도우 애저의 Blob 저장소로 업로드 하는 것이 필요합니다. 이때 병렬 작업을 하면 속도를 많이 단축시킬 수 있습니다. 저의 경우 초당 0.5 메가 정도의 속도가 나는 것을 병렬 기술을 적용했을 때 초당 2메가 이상으로 속도가 향상 되었습니다.

 
 

이렇게 병렬로 업로드를 하기 위해서는 윈도우 애저 저장소에서 병렬 관련한 옵션을 활용하면 되는데요, 이를 구현해서 바로 활용할 수 있도록 공개한 소스코드 몇 가지가 있어서 공유하고자 합니다. 이를 이용하면 보다 상황에 맞게 최적화된 업로드 솔루션 등을 만들 수도 있을 것으로 보입니다.

 
 

Asynchronous Parallel Block Blob Transfer with Progress Change Notification: 윈폼 앱으로서 파일 사이즈의 크기 제한이 없으며 병렬 방식으로 인해 향상된 업로드 속도가 나옵니다. (가장 추천)

 
 

Parallel Uploads to Windows Azure Blob Storage via a Silverlight Control

두 번째는 실버라이트 컨트롤로서 병렬 업로드를 할 수 있는 웹 컨트롤 입니다. 단, 현재 업로드 가능한 파일의 최대 용량은 200M 까지 이며, 향후에 업데이트 될 예정이라고 합니다.

 
 

Reliable Uploads to Windows Azure Blob Storage via an HTML5 Control

세 번째는 HTML5 기술을 활용해서 용량이 큰 파일도 안정적으로 업로드할 수 있는 것 입니다. 단, 병렬로 업로드가 되는 것은 아니라서 속도가 빠르지는 않으며, HTM5가 지원되는 브라우저(e.g. IE10, Crome등)에서만 가능합니다.

 
 

참고로, 외부의 3rd party 개발사들이 만든 저장소 관련한 SW들(e.g. CloudXplorer, Cloudberry, Cerebrate…)이 있지만, 병렬을 업로드를 제대로 지원하는 것은 현재는 없는 상황입니다.