使用 HTTP 下載非常大的文件

使用 HTTP 下載非常大的文件

我正在下載地方網地點影像壓縮資料庫(~132GiB)。不幸的是,下載的檔案已損壞。我已經嘗試了幾次,每次提取都停止在不同的位置(大約偏移量可能是10GiB,30GiB等)地方網不提供分割版本下載。嗯,問題應該是下載的檔案中的一些字節,我該怎麼做才能避免再次重新下載整個檔案?

我的想法是:

  1. 是否有用於增強資料報校驗和的 TCP 擴充?以及如何使用它?

  2. 我可以看到第一個錯誤位元組的偏移量(大約)嗎?槍拉鍊平?

  3. 我在用著阿克塞爾去下載。下載完成後,是否可以重新下載檔案的某些部分?即,XXX.st為 axel 建立文件,將某些範圍標記為未下載,然後再次執行 axel。

答案1

您可以嘗試不同的方法,即使用 FUSE 包裝器透過 HTTP「掛載」遠端檔案並在其上呼叫標準工具。這些工具將嘗試讀取特定字節,這些嘗試將轉換為 HTTP 位元組範圍 GET 請求。

StackOverflow 上對此進行了討論,這個很好的答案經過亞當它使用HTTPFS

掛載一個遠端 zip 檔案並從中提取一個檔案:

mkdir mount_pt
sudo ./httpfs http://server.com/zipfile.zip mount_pt
sudo ls mount_pt zipfile.zip
sudo unzip -p mount_pt/zipfile.zip the_file_I_want.txt > the_file_I_want.txt
sudo umount mount_pt

在您的情況下,如果該檔案不是 ZIP,而是一個tar.gz檔案(我無法檢查,因為您提供的連結需要註冊),那麼您可以調整以下步驟:

mkdir mount_pt
sudo ./httpfs http://example.com/file.tar.gz mount_pt
sudo tar xzvf mount_pt/file.tar.gz

或甚至呼叫file-roller存檔上的 或其他 GUI 工具。

相關內容