Прогресс загрузки wget в обратном порядке?

Я понятия не имею, что случилось, но вдруг он начал показывать индикатор в обратном порядке...

HTTP-запрос отправлен, ожидая ответа... 200 OK
Длина: 4102725632 (3,8 ГБ) [приложение / октет-поток]
Сохранение в: `*******. *** '

-64% [================>................] -1 603 353 961 14,3 Кб / с eta 2d 17h

вместо этого обычно:

HTTP-запрос отправлен, ожидая ответа... 200 OK
Длина: 1913641 (1,8 м) [приложение /pdf]
Сохранение в: `InformationBrochure.pdf '

11% [===========>.....................] 216 000 19,7 К / с эта 89 с

как я могу изменить его обратно на нормальный порядок увеличения?

РЕДАКТИРОВАТЬ: он показывает это таким образом только для вышеуказанного файла 4 ГБ, Windows 10 iso, я загружаю.... для всех других загрузок все в порядке. В чем причина этого?

1 ответ

Решение

Это похоже на проблему целочисленного переполнения. Я думаю (не глядя на код), что на вашей конкретной платформе, wget внутренне представляет ход загрузки и, возможно, размер файла в виде (подписанного) 32-разрядного числа загруженных байтов.

32-разрядная переменная со знаком обернется примерно на +2,15 миллиарда, после чего она начнет подсчитываться с -2,15 миллиарда. Это соответствует размеру файла 2 ГиБ.

Если моя гипотеза верна, то для вас как для обычного пользователя не существует реального "решения" этой проблемы; проблема будет отображаться при загрузке файла, размер которого превышает 2 147 483 647 байт.

Может случиться так, что 64-битные версии wget лучше справляются с отображением прогресса при больших загрузках, поскольку в этом случае оборачивание будет происходить при таких нелепо больших размерах файлов, что вы просто не столкнетесь с ними. С другой стороны, мы говорили, что и для отдельных файлов размером в несколько гигабайт тоже...

С другой стороны, это должно быть чисто косметической проблемой. Сама загрузка почти наверняка совершенно не затронута этим.


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

Другие вопросы по тегам