我想下载 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 wget
)wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
,curl 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