使用 HTTP 下载非常大的文件

使用 HTTP 下载非常大的文件

我正在下载PlaceNet压缩的地点图像数据库(~132GiB)。不幸的是,下载的文件已损坏。我尝试了几次,每次提取都会在不同的位置停止(大约偏移量可能是 10GiB、30GiB 等)PlaceNet不提供分割版本下载。好吧,问题应该是下载文件中的一些字节,我该怎么做才能避免再次下载整个文件?

我的想法是:

  1. 是否有用于增强数据报校验和的 TCP 扩展?如何使用它?

  2. 我可以看到第一个错误字节的偏移量(近似值)枪械ping 吗?

  3. 我在用着阿克塞尔下载。下载完成后,是否可以重新下载文件的某些部分?即,XXX.st为 axel 创建文件,将某些范围标记为未下载,然后再次运行 axel。

答案1

您可以尝试不同的方法,即使用 FUSE 包装器通过 HTTP“挂载”远程文件并调用其上的标准工具。这些工具将尝试读取特定字节,这些尝试将转换为 HTTP 字节范围的 GET 请求。

StackOverflow 上已经讨论过这个问题,这个很好的答案经过亚当它使用超文本传输​​协议

挂载远程 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 工具。

相关内容