ดาวน์โหลดสื่อ

การดาวน์โหลดสื่อที่ดำเนินการต่อได้เป็นฟีเจอร์ในไลบรารีของไคลเอ็นต์ .NET ของ Google API มาตั้งแต่ 1.4.0 รุ่นเบต้า ไลบรารีสำหรับ Google API โดยเฉพาะมีวิธีอำนวยความสะดวกในการโต้ตอบกับฟีเจอร์นี้

โปรโตคอลการดาวน์โหลดสื่อที่กลับมาใช้ใหม่ได้นั้นคล้ายกับโปรโตคอลการอัปโหลดสื่อที่กลับมาทำงานอีกครั้งได้ ซึ่งอธิบายไว้ในหน้าการอัปโหลดสื่อสำหรับ Drive API เป็นต้น

ประเภทความสนใจหลักคือ MediaDownloader ในการใช้งานการดาวน์โหลดสื่อแบบดำเนินการต่อได้นี้ ระบบจะดาวน์โหลดเนื้อหาสื่อออกเป็นส่วนๆ (สามารถกำหนดค่าขนาดกลุ่มได้)

โค้ดตัวอย่าง

หากเมธอดในไลบรารีที่ใช้เฉพาะ API มีพารามิเตอร์ "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);
}