从 1.4.0-beta 版开始,可续传媒体下载一直是 Google API .NET 客户端库中的一项功能。 Google API 特定的库包含与 API 交互的 。
可续传媒体下载协议与可续传媒体上传协议类似, 说明, Drive API 的媒体上传页面。
感兴趣的主要类是
MediaDownloader
。
在可续传媒体下载的实现中,媒体内容以分块的形式下载(分块大小可配置)。
示例代码
如果 API 专属库中的方法包含 “supportsMediaDownload
”参数后,
然后是Download
和DownloadAsync
便捷方法都在 request 类中提供。
这些方法会将媒体数据下载到 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); }