Medya İndir

Devam ettirilebilir medya indirme, 1 .4.0 beta sürümünden beri Google API'nin.NET istemci kitaplığında yer alan bir özellik. Google API'ye özel kitaplıklar, bu özellikle etkileşime geçmek için uygun yöntemler içerir.

Devam ettirilebilir medya indirme protokolü, örneğin Drive API'nin medya yükleme sayfasında açıklanan devam ettirilebilir medya yükleme protokolüne benzer.

Ana ilgi alanı sınıfı MediaDownloader. Devam ettirilebilir medya indirmenin bu uygulamasında, medya içeriği parçalar halinde indirilir (parça boyutu yapılandırılabilir).

Örnek Kod

API'ye özel kitaplıklardaki yöntemler Discovery dokümanında "supportsMediaDownload" parametresini içeriyorsa Download ve DownloadAsync kolaylık yöntemleri istek sınıfında kullanılabilir. Bu yöntemler, medya verilerini sağladığınız bir Stream nesnesine indirir. Örneğin:
{
    // 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);
}