进入新版

联系电话: 400-158-8816

产品咨询:

电话咨询

400-158-8816

断点上传接口

发布于:2014-03-24 15:54来源:未知 作者:保利威 点击:
原理
 
通过偏移量来实现断点续传
 
偏移量Offset
 
Offset头部变量标志当前上传文件完成的偏移量,Offset为0或者大于0的整型。
 
请求类型
 
HEAD
每一次HEAD类型请求,服务器总是会返回offset头部变量,标志当前上传完成的字节数。
 
PATCH
服务器通过PATCH类型请求接收文件上传的数据。所有PATCH请求必须使用Content-Type: application/offset+octet-stream.
 
上传节点
 
上传接口地址统一为http://v.polyv.net:1080/files/
 
例子
 
创建文件
 
提交空的 POST 请求让服务器端创建一个待上传的文件. 需要在请求的Header增加两个变量:Final-Length和writeToken. 其中Final-Length为文件大小,writeToken是polyv后台的上传授权码。
 
Request:
 
POST /files HTTP/1.1
Host: v.polyv.net
Final-Length: 100
writeToken: Y07Q4yopIVXN83n-MPoIlirBKmrMPJu0
Response:
HTTP/1.1 201 Created
Location: http://v.polyv.net:1080/files/sl8da4jjbx28aac52069409bc8f6bf6e_s
 
Response会返回一个新的上传地址Location附带到Header里面,其中files后面的(sl8da4jjbx28aac52069409bc8f6bf6e_s)则为视频vid。 上传需要附带POST的参数:
 
标题 title 默认为notitle
描述 desc 默认为空
扩展名 ext:(mp4,mov,avi等) 默认为bin
 
续传
 
利用 HEAD request 取得Offset变量,决定从哪个地方恢复上传。 下面例子演示从 100 字节的文件,从第70个字节中断后,继续上传。 Request:
 
HEAD /files/sl8da4jjbx28aac52069409bc8f6bf6e_s
HTTP/1.1
Host: v.polyv.net
Response:
HTTP/1.1 200 Ok
Offset: 70
 
返回offset为70, 客户端开始用 PATCH 请求恢复上传 : Request:
 
PATCH /files/sl8da4jjbx28aac52069409bc8f6bf6e_s
HTTP/1.1
Host: v.polyv.net
Content-Type: application/offset+octet-stream
Content-Length: 30
Offset: 70
 
[剩余的 30 bytes]
 
Response:
 
HTTP/1.1 200 Ok
 
例子源码
 
iOS 上传源码 https://github.com/easefun/polyv-ios-client-demo
 
jquery上传源码 https://github.com/easefun/polyv-jquery-client
 
tag标签:
------分隔线----------------------------
------分隔线----------------------------