Herunterladen durch Anhängen nach einem bestimmten Prozentsatz der Fertigstellung

Herunterladen durch Anhängen nach einem bestimmten Prozentsatz der Fertigstellung

Ich lade immer wget -ceine Datei herunter, die den Download ermöglicht, indem sie bei Bedarf an die letzte Downloadposition angehängt wird.

Eine Datei wird heruntergeladen 30%. Dann, nach der Netzwerkbelegung, wurde am Ende Datenmüll an die Datei angehängt, bis dieser erreicht war 40%. (Datenmüll wurde hinzugefügt, da die Logik des Dateiservers nach Datenmüll sucht 30mins.)

Jetzt habe ich einen neuen URL-Speicherort mit einigen neuen Token, die als Nächstes 30minsfür dieselbe Datei verfügbar sind. Wie kann ich mit dem Herunterladen derselben Datei fortfahren, aber ab 30%jetzt beginnen?

Oder gibt es eine Anwendung, die das kann?

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

Hinweis: - --from='30%'ist nur ein Beispiel, wenn es möglich ist. Es gibt kein vergleichbares Argument inwget

Antwort1

wget -c / --continuefährt immer mit der angegebenen Dateigröße fort, aber Sie können das ändern:

Verwenden Sie truncate, um die Datei wieder auf die Originalgröße zu reduzieren 30%(Sie müssen die Größe in Bytes oder KBytes angeben). Oder Sie können verwenden head -c SIZE file > file_30pc, wodurch die Originaldatei nicht verändert wird (Sie müssen sie dann aber umbenennen).

Und wie BlueManCZ vorgeschlagen hat, sollten Sie sicherstellen, -O output-filedass es sich um dieselbe Datei handelt.

Notiz:Die Verwendung --start-posvon anstelle -c/--continueder Angabe der letzten guten Position wirdnichtfunktioniert, stattdessen wird ab dieser Position eine neue Datei erstellt, es wird keine vorhandene angehängt (es wird sogar überschrieben, wenn Sie angeben -O).

Antwort2

Wenn Sie mit dem Herunterladen derselben Datei von einer anderen URL fortfahren müssen (oder die Datei umbenannt haben), müssen Sie in Ihrem Befehl den Dateinamen angeben.

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]

Aber ich weiß nicht, ob es genau die Antwort auf Ihr Problem ist.

Antwort3

Sie können ein anderes tolles Linux-Tool namens aria2 ausprobieren. Hier erfahren Sie, was Sie tun müssen, um Ihren Download fortzusetzen

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

hier -c bedeutet, den vorherigen Download fortzusetzen -m bedeutet, den Download unendlich oft zu wiederholen -o bedeutet, die Ausgabedatei

Probieren Sie es aus aria2 ist einer der besten Downloader für Linux

verwandte Informationen