미디어 다운로드

재개 가능한 미디어 다운로드는 1 .4.0-beta부터 Google API.NET 클라이언트 라이브러리의 기능이었습니다. Google API 관련 라이브러리에는 이 기능과 상호작용하기 위한 편의 메서드가 포함되어 있습니다.

재개 가능한 미디어 다운로드 프로토콜은 Drive API의 미디어 업로드 페이지 등에 설명된 재개 가능한 미디어 업로드 프로토콜과 유사합니다.

관심 있는 기본 클래스는 MediaDownloader입니다. 재개 가능한 미디어 다운로드의 구현에서는 미디어 콘텐츠가 청크 단위로 다운로드됩니다 (청크 크기를 구성할 수 있음).

샘플 코드

API별 라이브러리의 메서드 중 Discovery 문서에 'supportsMediaDownload' 매개변수가 포함되어 있으면 요청 클래스에서 DownloadDownloadAsync 편의 메서드를 사용할 수 있습니다. 이러한 메서드는 제공된 Stream 객체에 미디어 데이터를 다운로드합니다. 예를 들면 다음과 같습니다.
{
    // Create the service using the client credentials.
    var storageService = new StorageService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "APP_NAME_HERE"
        });
    // Get the client request object for the bucket and desired object.
    var getRequest = storageService.Objects.Get("BUCKET_HERE", "OBJECT_HERE");
    using (var fileStream = new System.IO.FileStream(
        "FILE_PATH_HERE",
        System.IO.FileMode.Create,
        System.IO.FileAccess.Write))
    {
        // Add a handler which will be notified on progress changes.
        // It will notify on each chunk download and when the
        // download is completed or failed.
        getRequest.MediaDownloader.ProgressChanged += Download_ProgressChanged;
        getRequest.Download(fileStream);
    }
}

static void Download_ProgressChanged(IDownloadProgress progress)
{
    Console.WriteLine(progress.Status + " " + progress.BytesDownloaded);
}