所需的下载工具——具有自定义标头、恢复、重试、自定义文件名输出和动态重定向

所需的下载工具——具有自定义标头、恢复、重试、自定义文件名输出和动态重定向

简单的问题——我需要一个下载管理器、控制台、GUI,这些都没关系。问题在于:

  • 自定义标头——我必须传递 cookie 才能下载(授权)

  • 继续 - 因此,如果下载因任何原因停止,我可以从 50% 继续(例如),而不是从头开始

  • 重试——这样程序可以自动尝试建立连接并再次下载

  • 自定义文件名输出——这样我就可以给出特定的文件名,数据的去向

  • 和动态重定向 - 所以如果我向服务器询问文件X,并且服务器回答“好的,这是X?token=767”,下载器将接受原始名称 - X(即它会认为它与我要求的相同)

由于我更喜欢​​控制台,到目前为止我尝试过 wget、curl、aria2c。他们都失败了。 wget 不处理自定义文件名输出(它只是转储到文件),并且它会被重定向“愚弄”——即与上面的示例一样,它将数据存储在文件中,X?token=767这实际上会破坏恢复和重试,因为每次重新连接令牌都会发生变化。

aria2c 和curl 甚至没有开始下载。我的猜测是,他们根本不接受重定向,aria2c 一次又一次重试,下载 0 字节但没有成功,curl 从文件移动到的服务器下载响应X?token=767

作为记录,下面是我的下载命令:

获取

wget -rc --no-cookies --header "Cookie: COOKIEKEY=COOKIEVALUE" \
     "https://www.foo.bar/file.gz"

咏叹调2c

aria2c -o f.gz --check-certificate=false -c -m0 \
       --header="Cookie: COOKIEKEY=COOKIEVALUE" \
       "https://www.foo.bar/file.gz"

卷曲

curl -o f.gz -C - --retry 1000 \
     -H "Cookie: COOKIEKEY=COOKIEVALUE" \
     "https://www.foo.bar/file.gz"

答案1

wget重定向问题可以通过使用来解决

wget --trust-server-names http://www.example.com/X?1234

相关内容