最近更新时间:2022-07-25
当下载大文件时,如果网络不稳定或者程序异常退出,会导致下载失败,甚至重试多次仍无法完成下载。为此UOS提供了分片下载功能。
断点下载时需要使用到 Range 和 Content-Range 实体头。
Range用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:
Range:(unit=first byte pos)-[last byte pos] |
Content-Range用于响应头,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:
Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth] |
分片下载需要将文件分成多个部分,通过range头将文件分成多个部分,通过分别对多部分文件进行下载,如果再某部分下载失败,通过设置range头的下载范围,将对下载失败的部分进行重新下载。
func MultiPartDownloadSample() { |