下載媒體

自 1.4.0-beta 版起,Google API .NET 用戶端程式庫一直提供支援續傳的媒體下載功能。 Google API 專屬程式庫包含便利的方法,可與這些 API 互動 這項功能

支援續傳的媒體下載通訊協定與支援續傳的媒體上傳通訊協定類似, 說明 Drive API 的媒體上傳頁面

主要感興趣的類別是 MediaDownloader。 在這個可續傳的媒體下載方式中,媒體內容會以分塊形式下載 (區塊大小可自行設定)。

程式碼範例

如果 API 專屬程式庫中的方法包含 「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);
}