断点续传

原理

通过偏移量来实现断点续传

 

偏移量Offset

Offset头部变量标志当前上传文件完成的偏移量,Offset为0或者大于0的整型。

 

请求类型

HEAD
每一次HEAD类型请求,服务器总是会返回offset头部变量,标志当前上传完成的字节数。
PATCH
服务器通过PATCH类型请求接收文件上传的数据。所有PATCH请求必须使用Content-Type: application/offset+octet-stream.
上传节点
上传接口支持断点续传,最大可上传30GB的文件
http上传接口地址统一为http://upload.polyv.net:1080/files/
https上传接口地址统一为https://upload.polyv.net:1081/files/

 

例子

创建文件
提交空的 POST 请求让服务器端创建一个待上传的文件. 需要在请求的Header增加两个变量:Final-Length和writeToken. 其中Final-Length为文件大小,writetoken是polyv后台的上传授权码。
Request:
POST /files HTTP/1.1
Host: upload.polyv.net
Final-Length: 100
writeToken: Y07Q4yopIVXN83n-MPoIlirBKmrMPJu0
Response:
HTTP/1.1 201 Created
Location: http://upload.polyv.net:1080/files/sl8da4jjbx28aac52069409bc8f6bf6e_s
Response会返回一个新的上传地址Location附带到Header里面,其中files后面的(sl8da4jjbx28aac52069409bc8f6bf6e_s)则为视频vid。 上传需要附带POST的参数:
标题 title 默认为notitle
标签 tag 默认为空
描述 desc 默认为空
扩展名 ext:(mp4,mov,avi等) 默认为bin
分类 cataid 默认为1,即用户上传空间的分类根目录
时间戳 ts 
签名 sign 根据将secretkey和时间戳按照顺序拼凑起来的字符串进行MD5计算得到的小写MD5值
哈希值 hash 根据将时间戳和writeToken按照顺序拼凑起来的字符串进行MD5计算得到的小写MD5值
用户ID userid POLYV账号的用户ID
续传
利用 HEAD request 取得Offset变量,决定从哪个地方恢复上传。下面例子演示从100字节的文件,从第70个字节中断后,继续上传。
Request:
HEAD /files/sl8da4jjbx28aac52069409bc8f6bf6e_s
HTTP/1.1
Host: upload.polyv.net
Response:
HTTP/1.1 200 Ok
Offset: 70
返回offset为70, 客户端开始用PATCH请求恢复上传剩余的30字节。
Request:
PATCH /files/sl8da4jjbx28aac52069409bc8f6bf6e_s
HTTP/1.1
Host: upload.polyv.net
Content-Type: application/offset+octet-stream
Content-Length: 30
Offset: 70
Response:

HTTP/1.1 200 Ok

 

示例源码

IOS上传源码
Java上传源码

点击在线演示

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...