2010-11-30 4 views
3

블로 브를 Azure Blob 저장소에 비동기 적으로 업로드합니다. CloudBlockBlob.BeginUploadFromStream을 사용하거나 UploadFile 또는 PutBlock과 같은 동기 업로드 메서드를 BackgroundWorker와 함께 호출 할 수 있습니다. 나는 어느 접근법의 장단점에 대한 의견을 찾고있다.Azure 블로 브 업로드 Async : BeginUploadFromStream vs. BackgroundWorker

나는 공을 굴릴 것이다. BackgroundWorker 방식을 사용하면 진행 상황을 훨씬 쉽게보고 할 수 있습니다.

감사합니다.

답변

3

I/O가 발생하는 동안 CPU 리소스를 낭비하지 않는 비동기 프로그래밍 모델을 사용하므로 BeginUploadFromStream이 더 효율적입니다. BackgroundWorker를 회전시키고 APM이 아닌 메소드를 호출하면 본질적으로 스레드를 낭비하게되고 디스크에서 읽기 및 네트워크 쓰기 작업이 발생합니다.

.NET에서 최대 효율을 위해 사용 가능한 경우 APM 모델을 사용하고 싶을 것입니다.

1

here을 참조하십시오.

블록의 병렬 업로드를 사용하여 blob을 업로드하는 방법과 blob 자체의 진행률 및 병렬 업로드를보고하는 방법을 설명합니다.

또한 this nice article에 링크되어 있으며, 병렬 블록 업로드를 원하지 않는 경우 유용 할 수 있습니다.

2

나는 아직도 noir의 게시물에서 많은 블로그 조회수를 얻으므로이 이전 질문을 업데이트하고 있습니다. Azure Storage Client 라이브러리 2.0의 * FromStream 메소드를 사용하는 새 블로그 게시물이 있음을 참고하십시오. 이 새로운 코드는보다 성과가 뛰어나고 신뢰성이 높으며 모든 진행 상황보고 기능을 제공합니다.

Asynchronous Parallel Block Blob Transfers with Progress Change Notification 2.0