完成一定百分比后通过附加方式下载

完成一定百分比后通过附加方式下载

我总是用来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

您可以尝试另一个名为 aria2 的很棒的 Linux 工具,您需要执行以下操作才能恢复下载

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

这里 -c 告诉继续之前的下载 -m 告诉无限次重试下载 -o 告诉输出文件

尝试一下 aria2 是 Linux 上最好的下载器之一

相关内容