
Я скачиваюPlaceNetСжатая база данных изображений мест (~132GiB). К сожалению, загруженный файл поврежден. Я пробовал несколько раз, каждый раз извлечение останавливалось в разных позициях (приблизительные смещения могли быть 10GiB, 30GiB и т. д.)PlaceNetне предоставляет разделенные версии для загрузки. Ну, проблема должна быть в некоторых байтах в загруженном файле, что я могу сделать, чтобы избежать повторной загрузки всего файла?
Мои идеи таковы:
Есть ли расширение TCP для улучшенной контрольной суммы датаграммы? И как его использовать?
Могу ли я увидеть смещение (приблизительное) до первого байта ошибки, когдапистолет-молнияпинг?
я используюаксельдля загрузки. Когда загрузка завершится, можно ли повторно загрузить некоторые части файла? То есть, создать файл
XXX.st
для axel, отметить какой-то диапазон как не загруженный и снова запустить axel.
решение1
Вы можете попробовать другой подход, т. е. использовать обертку FUSE для "монтирования" удаленного файла через HTTP и вызова стандартных инструментов на нем. Инструменты попытаются прочитать определенные байты, и эти попытки будут транслироваться в запросы HTTP GET с диапазоном байтов.
Это обсуждалось на StackOverflow, вэтот отличный ответкАдамкоторый используетHTTPFS:
Смонтируйте удаленный zip-файл и извлеките из него один файл:
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
В вашем случае, если файл не является ZIP-архивом, а, например, tar.gz
файлом (я не могу проверить, так как предоставленная вами ссылка требует регистрации), то вы можете адаптировать шаги:
mkdir mount_pt
sudo ./httpfs http://example.com/file.tar.gz mount_pt
sudo tar xzvf mount_pt/file.tar.gz
Или даже вызовите file-roller
другой графический инструмент для архива.