1

Я загружаю сжатую базу данных PlaceNet с изображениями мест (~ 132 ГБ). К сожалению, загруженный файл поврежден. Я пробовал несколько раз, каждый раз, когда извлечение останавливается в разных положениях (приблизительные смещения могут быть 10 ГБ, 30 ГБ и т.д.) PlaceNet не предоставляет разделенные версии для скачивания. Ну, проблема в том, что в загруженном файле должно быть несколько байтов. Что я могу сделать, чтобы избежать повторной загрузки всего файла?

Мои идеи:

  1. Есть ли расширение TCP для расширенной контрольной суммы дейтаграммы? И как это использовать?

  2. Можно ли увидеть смещение (прибл.) Первого байта ошибки при пинге gunzip ?

  3. Я использую аксель для загрузки. После завершения загрузки можно ли повторно загрузить некоторые части файла? Т.е. создайте файл XXX.st для акселя, отметьте некоторый диапазон как незагруженный и снова запустите аксель.

1 ответ1

0

Вы можете попробовать другой подход, то есть использовать обертку FUSE для "монтирования" удаленного файла через HTTP и вызывать на нем стандартные инструменты. Инструменты попытаются прочитать определенные байты, и эти попытки будут преобразованы в запросы GET с байтовым диапазоном HTTP.

Это обсуждалось на 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 или другой инструмент с графическим интерфейсом в архиве.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .