golang 实现文件断点续传 demo
实现http断点续传其中一种办法是使用范围请求
。
涉及头部:
request
Range
表示获取数据范围。例如:Range: bytes=0-1023
表示获取下标为0
到1023
的字节,一共1024
个。
response
Content-Range
表示返回数据的范围。例如Content-Range: bytes 0-1023/146515
表示当前http报文的body数据是0-1023
,文件一共有146515
个字节。Accept-Ranges
表示接受range的单位,目前只定义了bytes
。服务器返回这个头部则表明接收范围请求
。
1 | package main |
待改进
如果在断点后再继续传输并且对象发生变化,那么会出现错误,所以要加上 Last-Modified
或者 ETag
来判断对象是否已经改变。