Saltar al contenido

Powershell: ¿por qué el uso de Invoke-WebRequest es mucho más lento que una descarga del navegador?

El tutorial o código que hallarás en este artículo es la solución más eficiente y válida que encontramos a esta inquietud o problema.

Solución:

Sin cambiar de Invoke-WebRequest, apagar la barra de progreso fue suficiente. Encontré la respuesta de este hilo: https://github.com/PowerShell/PowerShell/issues/2138 (jasongin comentó el 3 de octubre de 2016)

$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest 

Para mi archivo de 5 MB en localhost, el tiempo de descarga pasó de 30 a 250 ms.

Tenga en cuenta que para recuperar la barra de progreso en el shell activo, debe llamar $ProgressPreference = 'Continue'.

yo estaba usando

Invoke-WebRequest $video_url -OutFile $local_video_url

Cambié lo anterior a

$wc = New-Object net.webclient
$wc.Downloadfile($video_url, $local_video_url)

Esto restauró la velocidad de descarga a lo que estaba viendo en mis navegadores.

One-liner para descargar un archivo al directorio temporal:

(New-Object Net.WebClient).DownloadFile("https://www.google.com", "$env:tempindex.html")

Si te gustó nuestro trabajo, puedes dejar una división acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *