2011-12-04 21 views
7

Estoy tratando de transferir un archivo multi-gb de un servidor a otro; el problema es RTT es 150ms +. Ya he intentado usar aria2 pero está limitado a 16 conexiones, lftp no tiene ninguna protección contra transferencias bloqueadas.descarga con curl usando conexiones múltiples

Me pregunto si es posible descargar un archivo con múltiples conexiones utilizando curl cli.

Respuesta

2

No, la herramienta Curl no tiene esa capacidad.

(Ah, y por cierto, un gran RTT es muy rara vez la explicación de por qué una transferencia TCP normal es lento)

4

Hay un script llamado pcurl que envuelve rizo hacer múltiples descargas simultáneas y luego combinarlas cuando haya terminado.

Su valor predeterminado es 10 conexiones, pero esto se puede cambiar en las MAX_SEGMENTS en la línea 81.

se invoca como esto:

./pcurl.sh http://myurl.to/a/very/largefile.zip 
1

Es posible. Obtenga el tamaño total del archivo con la opción -I en curl.

Luego puede hornear muchos procesos en un shell, cada conexión curl con un encabezado diferente Content-Length para descargar diferentes partes del archivo.

Después de que todas las tareas terminen, combine todas las secciones de descarga en un archivo grande.

He escrito un script simple y está disponible aquí mcurl.sh, con la opción -s puede especificar cuántas tareas crear para descargar el archivo grande.

Cuestiones relacionadas