Baixe anexando após alguma porcentagem de conclusão

Baixe anexando após alguma porcentagem de conclusão

Eu sempre utilizo wget -cpara baixar um arquivo que possibilita o download anexando sempre que necessário da última posição do download.

Um arquivo é baixado 30%. Então, após a ocupação da rede, ele começou a anexar algum lixo ao arquivo no final e chegou até 40%. (Lixo adicionado devido à lógica do servidor de arquivos para fornecer dados ruins depois 30mins).

Agora, tenho um novo local de URL com algum novo token disponível para 30minso próximo arquivo. Como posso continuar baixando o mesmo arquivo, mas iniciado a partir de 30%agora?

Ou existe algum aplicativo que faça isso?

ex:

$ 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% [+++++++++++++=>                               ]

Nota: - --from='30%'é apenas um exemplo, se puder ser feito. não há nada parecido com esse argumento emwget

Responder1

wget -c / --continuesempre continua com o tamanho de arquivo fornecido, mas você pode alterar isso:

Use truncatepara reduzir o arquivo de volta ao tamanho original 30%(você deve especificar o tamanho em bytes ou kbytes). Ou você pode usar head -c SIZE file > file_30pc, que não altera o arquivo original (mas você terá que renomeá-lo).

E como sugerido pelo BlueManCZ, você pode querer usar -O output-filepara ter certeza de que é o mesmo arquivo.

Observação:Usar --start-posem vez de -c/--continuepara especificar a última posição boa iránãofunciona, em vez disso ele cria um novo arquivo daquela posição em diante, ele não anexa um arquivo existente (ele até mesmo substituirá se você especificar -O).

Responder2

Se precisar continuar baixando o mesmo arquivo de outro URL (ou arquivo renomeado), você deve especificar o nome do arquivo em seu comando.

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]

Mas não sei se é a resposta exatamente para o seu problema.

Responder3

você pode experimentar outra ferramenta incrível do Linux chamada aria2, aqui está o que você precisa fazer para retomar o download

aria2c -c -m 0 -o "myfile.zip" "http://example.com/file.zip"

aqui -c diz para continuar o download anterior -m diz para repetir downloads infinitas vezes -o diz ao arquivo de saída

experimente aria2 é um dos melhores downloaders para Linux

informação relacionada