La descarga de contenido multimedia reanudable ha sido una función de la biblioteca cliente de .NET de la API de Google desde la versión 1.4.0-beta. Las bibliotecas específicas de la API de Google contienen métodos útiles para interactuar con esta función.
El protocolo de descarga de contenido multimedia reanudable es similar al protocolo de carga de contenido multimedia reanudable, que se describe, por ejemplo, en el página de carga de contenido multimedia para la API de Drive.
La principal clase de interés es
MediaDownloader
En esta implementación de la descarga reanudable de contenido multimedia, el contenido multimedia se descarga en fragmentos (el tamaño de los fragmentos es configurable).
Código de muestra
Los métodos de las bibliotecas específicas de API contienen “supportsMediaDownload
” en el documento de descubrimiento,
luego, Download
y DownloadAsync
de conveniencia disponibles en la clase de solicitud.
Esos métodos descargan los datos multimedia a un Stream
.
el objeto de acceso que proporcionas. Por ejemplo:
{ // 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); }