Fortsetzbare Mediendownloads sind seit der Betaversion 1 .4.0 in der.NET-Clientbibliothek der Google API enthalten. Die Google API-spezifischen Bibliotheken enthalten praktische Methoden zur Interaktion mit dieser Funktion.
Das Protokoll für fortsetzbare Mediendownloads ähnelt dem Protokoll für fortsetzbare Medienuploads, das beispielsweise auf der Medien-Uploadseite für die Drive API beschrieben wird.
Die wichtigste Klasse von Interesse ist MediaDownloader
.
Bei dieser Implementierung des fortsetzbaren Mediendownloads wird der Medieninhalt in Blöcken heruntergeladen. Die Größe des Blocks ist konfigurierbar.
Beispielcode
Wenn die Methoden in den API-spezifischen Bibliotheken im Discovery-Dokument den Parameter „supportsMediaDownload
“ enthalten, sind die praktischen Methoden Download
und DownloadAsync
in der Anfrageklasse verfügbar.
Mit diesen Methoden werden die Mediendaten in ein Stream
-Objekt heruntergeladen, das du zur Verfügung stellst. Beispiel:
{ // 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); }