Как правильно реализовать функцию «возобновить загрузку» - PullRequest
0 голосов
/ 08 ноября 2018

Интересно в общем, как wget (или все, что имеет эту функцию, на самом деле) реализует функцию «возобновления загрузки».То есть, скажем, ваша загрузка прерывается, и вы снова запускаете программу.Он должен возобновиться с того места, на котором остановился, поэтому вам не нужно начинать с самого начала каждый раз, когда отключается интернет или что-то в этом роде.

Не совсем уверен, насколько легко или сложно это реализовать.Хотите знать, как это обычно делается.Не должно быть того, как это делает wget или как это сделать подробно.Но как что-нибудь может сделать это правильно.Хотите знать, если они просто читают размер текущего файла, который является локальным, и просто делают запрос диапазона.Или, возможно, им нужно сохранить / сохранить размер файлов, которые он собирался загрузить, в некоторый файл метаданных (я вижу эти .listing файлы в wget, но не уверен, что они есть или делают ли они это).

Хотите знать, если вам нужен тип вещи on program exit или если есть более простой способ сделать это?Я обдумываю, как это сделать в Node.js или в Браузере, но это не имеет значения в вопросе, поскольку оно является общим.

Некоторые примеры, когда загрузка может быть прервана:

  • Сервер отключается в облаке, поэтому автоматически создается новый, а затем каким-то образом он возвращается в запрос и знает метаданные, чтобы начать загрузку с того места, на котором он остановился.
  • Aпользователи выходят в интернет, а затем возвращаются.
  • На сервере возникает ошибка, поэтому он должен просто перезапустить с того места, где он остановился.
  • Пользователь обновляет страницу (эта, вероятно, неработать на самом деле).
  • Вместо того, чтобы строго «скачивать», это может буквально просто считывать из тонны файлов локально, и программа каким-то образом прерывается.Так что, вероятно, должно получиться так же.

Опять же, не обязательно знать, как обращаться со всеми этими случаями / крайними случаями, просто интересуюсь общей техникой того, как подойти к нему.

...