Descargar archivos muy grandes con HTTP

Descargar archivos muy grandes con HTTP

estoy descargando elLugarNetBase de datos comprimida de imágenes de lugares (~132GiB). Desafortunadamente, el archivo descargado está dañado. Lo he intentado varias veces, cada vez que la extracción se detiene en diferentes posiciones (las compensaciones aproximadas pueden ser 10 GiB, 30 GiB, etc.)LugarNetno proporciona versiones divididas para descargar. Bueno, el problema deberían ser algunos bytes en el archivo descargado. ¿Qué puedo hacer para evitar volver a descargar el archivo completo?

Mis ideas son:

  1. ¿Existe una extensión TCP para una suma de comprobación de datagrama mejorada? ¿Y cómo usarlo?

  2. ¿Puedo ver el desplazamiento (aprox.) del primer byte de error cuandocremallera de arma¿silbido?

  3. Estoy usandoaxeldescargar. Cuando se completa la descarga, ¿es posible volver a descargar algunas partes del archivo? Es decir, cree el XXX.starchivo para axel, marque algún rango como no descargado y ejecute axel nuevamente.

Respuesta1

Puede probar un enfoque diferente, es decir, utilizar un contenedor FUSE para "montar" un archivo remoto a través de HTTP e invocar herramientas estándar en él. Las herramientas intentarán leer bytes específicos y esos intentos se traducirán en solicitudes GET de rango de bytes HTTP.

Esto se ha discutido en StackOverflow, enesta gran respuestaporAdánque utilizaHTTPFS:

Monte un archivo zip remoto y extraiga un archivo:

mkdir mount_pt
sudo ./httpfs http://server.com/zipfile.zip mount_pt
sudo ls mount_pt zipfile.zip
sudo unzip -p mount_pt/zipfile.zip the_file_I_want.txt > the_file_I_want.txt
sudo umount mount_pt

En su caso, si el archivo no es un ZIP sino, por ejemplo, un tar.gzarchivo (no puedo comprobarlo porque el enlace que proporcionó requiere registro), entonces puede adaptar los pasos:

mkdir mount_pt
sudo ./httpfs http://example.com/file.tar.gz mount_pt
sudo tar xzvf mount_pt/file.tar.gz

O incluso llamar file-rollera otra herramienta GUI en el archivo.

información relacionada