Я всегда использую wget -c
для загрузки файла, который позволяет загружать его, добавляя при необходимости из последней позиции загрузки.
Файл загружается 30%
. Затем после загрузки сети он начал добавлять какой-то мусор в конец файла и дошел до 40%
. (Мусор добавлялся из-за логики файлового сервера, которая выдает мусорные данные после 30mins
).
Теперь у меня есть новое местоположение URL с новым токеном, доступным для следующего 30mins
для того же файла. Как я могу продолжить загрузку того же файла, но начать с 30%
этого момента?
Или есть какое-то приложение, которое это делает?
бывший:
$ wget -c http://xyz.com/file.txt?token=1
30% [=============> ]
40% [=================> ] (10%junk added)
^C - cancelled
$ wget -c http://xyz.com/file.txt?token=2 --from='30%'
31% [+++++++++++++=> ]
Примечание: - --from='30%'
это просто пример, если это возможно. Ничего похожего на этот аргумент не существует вwget
решение1
wget -c / --continue
всегда продолжается с указанным размером файла, но вы можете это изменить:
Используйте truncate
для уменьшения файла до исходного 30%
размера (необходимо указать размер в байтах или килобайтах). Или вы можете использовать head -c SIZE file > file_30pc
, который не трогает исходный файл (но тогда вам придется переименовать его).
И как предлагает BlueManCZ, вы можете использовать , -O output-file
чтобы убедиться, что это тот же самый файл.
Примечание:Использование --start-pos
вместо -c/--continue
для указания последней хорошей позиции будетнетработает, вместо этого он создает новый файл с этой позиции и далее, а не добавляет существующий (он даже перезапишет, если вы укажете -O
).
решение2
Если вам необходимо продолжить загрузку того же файла с другого URL-адреса (или переименованного файла), вы должны указать конкретное имя файла в вашей команде.
wget -c -O myfilename https://examle.net/file1.txt
[will be stoped in 30%]
wget -c -O myfilename https://another_url.net/file2.txt
[will start on 30% of previous file]
[file1.txt and file2.txt must be same]
Но я не знаю, является ли это ответом именно на Вашу проблему.
решение3
Вы можете попробовать еще один замечательный инструмент Linux под названием aria2. Вот что вам нужно сделать, чтобы возобновить загрузку.
aria2c -c -m 0 -o "myfile.zip" "http://example.com/file.zip"
здесь -c говорит о продолжении предыдущей загрузки -m говорит о повторении загрузки бесконечное количество раз -o говорит о выходном файле
попробуйте aria2 — один из лучших загрузчиков для Linux