تنزيل الوسائط

أصبح تنزيل الوسائط القابل للاستئناف ميزة متوفرة في مكتبة عملاء Google API .NET منذ إطلاق الإصدار التجريبي 1.4.0. تحتوي المكتبات الخاصة بواجهة Google API على طرق ملائمة للتفاعل مع هذه الميزة.

يشبه بروتوكول تنزيل الوسائط القابلة للاستئناف بروتوكول تحميل الوسائط القابلة للاستئناف الموضح، على سبيل المثال، في صفحة تحميل الوسائط لواجهة برمجة تطبيقات Drive.

تمثّل الفئة الرئيسية موضع الاهتمام MediaDownloader. عند تنفيذ تنزيل الوسائط القابلة للاستئناف، يتم تنزيل محتوى الوسائط في أجزاء (حجم الكتلة قابل للتهيئة).

نموذج التعليمات البرمجية

إذا كانت الطرق في المكتبات الخاصة بواجهة برمجة التطبيقات تحتوي على المعلَمة "supportsMediaDownload" في مستند Discovery، تتوفّر عندئذٍ الطريقتان الملائمتان Download وDownloadAsync في فئة الطلب. وتعمل هذه الطرق على تنزيل بيانات الوسائط في عنصر 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);
}