再開可能なメディアのダウンロードは、1.4.0 ベータ版以降の Google API .NET クライアント ライブラリの機能となっています。 Google API 固有のライブラリには、API を操作するための便利なメソッドが用意されています。 おすすめします。
再開可能メディア ダウンロード プロトコルは、再開可能メディア アップロード プロトコルに類似しています。 たとえば、 Drive API のメディア アップロード ページ
関心の対象となっている主なクラスは
MediaDownloader
。
再開可能なメディア ダウンロードのこの実装では、メディア コンテンツがチャンク形式でダウンロードされます(チャンクサイズは構成可能です)。
サンプルコード
API 固有のライブラリのメソッドに 「supportsMediaDownload
」パラメータの 2 番目のパラメータと、
次に 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); }