如何下载大文件

当下载大文件时,如果网络不稳定或者程序异常退出,会导致下载失败,甚至重试多次仍无法完成下载。此时您可以通过SDK或者ossutil下载大文件。

通过SDK下载

您可以通过SDK的方式实现断点续传下载,从而下载大文件。断点续传下载过程中有以下注意事项:

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心

  • 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见配置访问凭证

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见初始化

  • 要断点续传下载,您必须有oss:GetObject权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 使用断点续传下载时,文件下载的进度信息会记录在Checkpoint文件中,如果下载过程中某一分片下载失败,再次下载时会从Checkpoint文件中记录的点继续下载,从而达到断点续传的效果。下载完成后,Checkpoint文件会被删除。

  • SDK会将下载的状态信息记录在Checkpoint文件中,所以要确保程序对Checkpoint文件有写权限。

  • 请勿修改Checkpoint文件中携带的校验信息。如果Checkpoint文件损坏,则会重新下载所有分片。

  • 如果下载过程中文件的ETag发生变化、Part丢失或被修改,则重新下载文件。

关于断点续传下载SDK的具体代码,请参见使用阿里云SDK

通过ossutil下载

您可以通过ossutil工具的cp命令将OSS的文件(Object)下载到本地。

更多信息,请参见cp(下载文件)