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 来判断对象是否已经改变。