无法下载大量数据;可以批量下载吗?

无法下载大量数据;可以批量下载吗?

我想下载 Google Compute Engine 实例的备份映像,但它太大(900+ MB)无法下载。它是一个 tar.gz 文件。

但问题是我现在在中国,GCP 被封锁了。所以我必须使用 VPN。

但是VPN太慢太不稳定,无法下载这么大的数据。每次我尝试下载时,下载都无法完成,最后在下载量太大的情况下停止并最终失败。我使用Google Chrome下载。

由于下载一直进行到失败点(例如,428/932 MB),如果您可以再次恢复或分离下载量,则可能可以下载它。

我可以分开下载内容来下载,以避免下载失败吗?

答案1

首先,您可以使用 7Zip 压缩文件,其压缩效果比 gzip 好得多,以减少下载大小。

其次,您可以使用可恢复中断下载的下载管理器,这样当下载中断时,您可以从停止的地方继续下载。

如果您不知道您使用什么操作系统进行下载,以下是一些适用于所有平台的下载管理器:

如果您使用 Windows,则可以使用更多非常好的下载管理器。

答案2

curl或之类的程序wget具有选项--continue( wget) 和--continue-at( curl),允许您恢复中断的下载,前提是数据尚未损坏。

wget,默认情况下会在中断时自动尝试恢复下载,这样你就不必担心传输不稳定。

curl--continue-at选项通常需要一个数字值,但如果您传递它-而不是数字,它将使用其输出文件来确定从哪个点开始下载。

示例用法(来自man wgetwget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Zcurl ftp://sunsite.doc.ic.ac.uk/ls-lR.Z -o myfile.Z --continue-at -

如果您需要使用一些特定的 cookie、标头、发送 POST 数据或任何内容来接收文件,现代浏览器(通过开发人员工具面板,即F12)允许您复制curl可用于访问该资源的请求命令。(见图片)

火狐浏览器: 在此处输入图片描述

铬: 在此处输入图片描述

只需将其复制curl并粘贴到控制台并附加适当的标志即可。如果命令失败,您可以curl再次调用(cookie 可能无效,因此您可能需要向浏览器询问新curl命令)并继续下载。

这看起来像是一个获取命令的复杂过程,但它非常灵活——可以通过浏览器curl提供的命令下载几乎所有在浏览器中查看的材料,可能猜测下一个链接1并将输出粘贴在一起。


1一本书可以这样上传,即您不必通过一个请求加载整个 PDF,而是逐页加载,每个页面都在不同的地址下。因此,您需要向 和 发出请求www.example.com/page1.pdf才能获得三页。有些视频流不会为一个请求发送视频,www.example.com/page2.pdf而是 要求客户端分别询问每个视频片段。 在这两种情况下,机制都很简单:猜测下一个链接生成模式,请求所有链接,然后“连接”(根据文件类型)输出。www.example.com/page3.pdf

相关内容