Wget
需要下載工具——帶有自定義標題、恢復、重試、自定義文件名輸出和動態重定向
簡單的問題——我需要一個下載管理器、控制台、GUI,沒關係。關鍵在於功能:
- 自定義標頭——我必須傳遞一個 cookie 才能下載(授權)
- resume——所以如果下載因任何原因停止,我可以從 50%(例如)繼續,而不是從開始
- 重試——這樣程序可以自動嘗試建立連接並再次下載
- 自定義文件名輸出——這樣我就可以給出特定的文件名,數據的去向
- 和動態重定向——所以如果我向伺服器詢問文件
X
,並且伺服器回答“好的,這裡是X?token=767
”下載器將接受這個原始名稱——X
(即它會認為它與我要求的相同)由於我更喜歡控制台,所以到目前為止我嘗試了 wget、curl、aria2c。他們都失敗了。wget 不處理自定義文件名輸出(它只是一個文件的轉儲)並且它被重定向“愚弄” - 即與上面的範例一樣,它將數據儲存在文件
X?token=767
中,這實際上破壞了恢復和重試,因為每次重新連接令牌都會更改。aria2c 和 curl 甚至都沒有開始下載。我的猜測是,他們根本不接受重定向,aria2c 一次又一次地重試,下載 0 字節但沒有成功,curl 從文件移動到的伺服器下載響應
X?token=767
。作為記錄,在我的下載命令下方:
wget
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"
wget重定向問題可以通過使用來解決
wget --trust-server-names http://www.example.com/X?1234