3

Я работаю в отеле с несколько плохим интернетом. Мне нужно скачать большой файл 5 гигов. Похоже, оценка составляет около одного дня. Я уверен, что это, вероятно, будет иметь 2 проблемы, само соединение в какой-то момент прервется И даже если загрузка завершится, оно может быть повреждено из-за природы http.

Помимо обсуждения того, как и почему это так, есть ли реальное решение в моей данной ситуации? Я думаю, что моя самая большая проблема - это коррупция, есть ли http-клиент, который может полностью это предотвратить?

Детали моей машины: Acer Aspire "Timeline" M5 Номер модели: -581TG (я купил ее в официальном магазине Acer в Таиланде, Pantip Plaza). На нем установлены сетевые драйверы по умолчанию:

  • Сетевой адаптер Broadcome 802.11n (версия 5.100.196.18, 19.03.2012)
  • Broadcom NetLink (TM) Гигабитный Ethernet
  • Адаптер мини-порта Microsoft Virtual WiFi (версия 6.1.17600.16385, 21.06.2006)

5 ответов5

5

Инструменты CLI cURL и Wget имеют возобновление, которое будет определено с того места, где они остановились, при условии, что сам сервер HTTP поддерживает запросы диапазона HTTP.

curl -C - http://...
wget --continue http://...

Я нашел, что оба надежны. А с помощью функции ограничения полосы пропускания это означает, что вы можете настроить длительные загрузки на использование меньше, чем средняя пропускная способность, так что соединение все еще будет использоваться для других целей.

Для поврежденных загрузок нет решения HTTP, хотя HTTPS, скорее всего, заметит определенные проблемы. Единственное, что вы можете сделать, это проверить контрольные суммы или подписи в конце загрузки.

Простейший протокол, который мне известен, который может решить вашу проблему, это BitTorrent, с rsync близкой секундой.

3

Я не могу предложить решение проблемы с коррупцией, но чтобы загрузить большой файл и иметь возможность корректно обрабатывать пропущенные соединения, я использую wget. У него есть ключ -c, который позволит вам возобновить загрузку. Я согласен с метаданными, что повреждение файла может быть вызвано плохим драйвером. В TCP встроена контрольная сумма, поэтому ваше оборудование должно обнаруживать неверные контрольные суммы и повторно запрашивать эти пакеты.

2

Для потоковой передачи больших файлов я написал для себя инструмент командной строки, который также может обрабатывать разрыв соединения при загрузке. Я еще не выпустил его, но вы можете использовать его. Написано только на C ++ Win32 API.

Поддержка больших файлов FTP/HTTP/HTTPS, специально для предварительной загрузки видео (mkv, avi, mp4, ...) Частичное чтение / запись из и в файлы. Загрузка с произвольным доступом (позволяет возобновить загрузку с определенной позиции).

dload v1.0 (загрузчик http/ftp)

Обновление: новая версия 1.5
dload v1.5

1

Для управления загрузками и возобновления прерванных загрузок:

Чтобы проверить целостность загрузки:

0

Используйте метод, который уменьшает вероятность повреждения файла и может справиться с прерываниями соединения. Я знаю два:

  • Битторрент, хотя вам нужен хост, который должен заполнять его в Битторренте, что не всегда возможно.

  • Использование хорошего менеджера загрузки, такого как это: http://alternativeto.net/software/jdownloader/

Если бы это было возможно, я бы попробовал подключить компьютер с помощью кабеля Ethernet. Всегда самый стабильный вариант против Wi-Fi.

Теперь нет ничего идеального, и всегда можно иметь проблемы. Но я думаю, что это ваша лучшая ставка. Кроме того, если вы не уверены, что загрузка прошла успешно, вы можете проверить целостность вашего файла с помощью хэшей. Не уверен, как они называются больше. Во всяком случае, эти вещи контрольной суммы.

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