删除视频的全部打点信息

deleteKeyFrame

作用:通过API删除视频的全部视频打点信息

URL

http://api.polyv.net/v2/video/{userid}/deleteKeyFrame

支持格式

JSON

HTTP请求方式

POST,GET

请求数限制

TRUE

请求参数

参数名必选类型说明
ptimestring当前时间的毫秒级时间戳(13位),3分钟内有效
vidstring视频ID
signstring签名,为40位大写的SHA1值

JSON示例

{
code: 200,
status: "success",
message: "success",
data: "success"
}

字段说明

字段说明
status成功/失败状态
code成功/失败代码
message成功/失败信息
data成功/失败数据

php请求示例

<?php
$userid="8f8482aaab";
$secretkey="AiDQw1mAmi";
$ptime=time()*1000;
$str="ptime=$ptime&vid=$vid".$secretkey;
$sign=strtoupper(sha1($str));
$vid="8f8482aaab8fe7ea12e3314a11a061fc_8";
$url="http://api.polyv.net/v2/video/$userid/deleteKeyFrame?ptime=$ptime&vid=$vid&sign=$sign";
$content = file_get_contents($url);
echo $content;
?>

签名规则

将请求参数(sign除外)按照参数名字典顺序排列,用“&”连接参数名与参数值,并在最后加上secretkey的值,生成40位大写的SHA1值,作为sign。
以下是示例过程:
1. 将请求参数按照参数名字典顺序排列为:
ptime=”1476753635000“;
vid=”8f8482aaab8fe7ea12e3314a11a061fc_8″;
2. 连接字符串 用“&”连接参数名与参数值,并在最后加上secretkey的值,生成40位大写的SHA1值,作为sign(本示例的值为AiDQw1mAmi),如下: ptime=1476753635000&vid=8f8482aaab8fe7ea12e3314a11a061fc_8AiDQw1mAmi
3. 生成签名sign
sign为40位大写的SHA1值:B2E2D7AAB9DFCC8CBFE7EDC919B5F8F6F4E104BC

名词解释

1.平台API的相关参数
useId用于保利威视服务器与您的服务器进行通讯的时候的身份验证
readtoken读密钥,用来从保利威视服务器上读取数据
writetoken写密钥,用来向保利威视服务器上写入数据
secretkey调用保利威视的API接口做签名访问时要用到

要获取到userId、writetoken、readtoken、secretkey这四个参数的值,可以在顶部功能列表右侧点击“设置”—点击“API接口”,如下图所示:QQ图片20160621162908调用平台API接口的时候,有时候会需要用到这四个参数中的一个或多个值。

2.分类的相关参数
catatree分类树 
cataid视频分类的id

(1)分类树catatree顶部功能列表的点击“视频列表”—点击“视频分类管理”—选中某一个分类(比如“第二册上”),如下图所示:QQ图片20160621163843(2)视频分类cataid顶部功能列表的点击“视频管理”—点击“视频分类管理”—选中某一个分类(比如“第二册上”),最右边的那个字符串就是视频分类的id,如下图所示:QQ图片20160621164303

API概述,常见问题

    保利威视开放平台是一个基于保利威视视频管理系统的开放的视频转码、存储与播放平台。开放平台为您提供了简易、便捷的视频存储渠道。
    广大开发者或网站只要登录保利威视平台并创建自己的账号,即可通过平台开放接口(Open API)对视频系统进行读写等操作。

API常见问题

1.文件上传有几种方式?

    后台上传:登陆http://my.polyv.net/v2/login,点击左边菜单的【上传视频】,点击【选择视频文件并上传】,选择视频后点【打开】。
    接口上传:详见http://dev.polyv.net/2014/09/uploadfile/
    客户端上传:登陆http://my.polyv.net/v2/login,点击左边菜单的【上传视频】,点击【注意】中的【POLYV上传客户端】。

2.视频加密如何设置?

    登陆http://my.polyv.net/v2/login,点击【云点播】,选择右上角【设置】中的【加密设置】,勾选【视频加密设置】,勾选后,只有新上传的视频才会加密(加密视频只能使用Polyv播放器),已上传的旧视频不会加密。

3.已删除的视频可否恢复?

    在左边菜单,回收站里面可以恢复。

4.上传视频后需要自己去后台修改标签和视频地址吗?

    如果您的视频标签和视频地址为空的话,第一次播放的时候会自动抓取播放页面的头部信息,并更新到后台,或者也可以到后台手动修改。

返回错误提示

返回error状态:

返回说明
0无错误
1找不到writetoken关联的user
2文件为空或者writetoken为空
3提交的json名字JSONRPC为null
4提交文件格式不正确
5readtoken为空
6分页输入出错
7vid不能为空
8找不到方法名
10userid不能为空
11上传目录为空
12远程URL文件不能访问
13 远程视频文件格式无法识别
15参数异常
16空间已满
17用户无接口权限
18 标题重复
19标题为空
20播放列表不存在
21参数错误
22参数签名错误
23视频不存在
24时间戳已过期

API调用签名

保利威视的API接口默认不需要对接口调用做签名,如果需要签名访问,需要先在保利威视后台做个设置(注意:如果不需要签名访问,请勿在以下的位置勾选“是”,系统默认为“否”):QQ图片20160621165340设置需要接口签名之后,API接口提交参数需要带一个参数sign,sign是由提交的参数以及secretkey一起做sha1加密得来的。

以下由上传视频接口为例,需要将提交给POLYV云平台的参数按指定序列和规则合并,再加上利用账号secretkey做sha1运算得到的一个40位的签名字符串作为参数sign,一起提交。如果sign没提交或者不匹配,系统会返回错误提示为error=22。

<?php
function uploadfile($title,$desc,$tag,$cataid,$filename) {
	$JSONRPC = '{"title":"'.$title.'","tag":"'.$tag.'","desc":"'.$desc.'"}';
	$writetoken = 'llIPXyhWzcjRrmW-dT11jFO40E4bDeZU';
	$secretkey = '7UagtQOq2A';
	$hash = sha1('cataid='.$cataid.'&JSONRPC='.$JSONRPC.'&writetoken='.$writetoken.$secretkey);

	//加上sign参数一起提交post
	$data = array(
		'JSONRPC' => $JSONRPC,
		'cataid'=>$cataid,
		'writetoken'=>$writetoken,
		'sign'=>$hash,
		'Filedata'=>new CURLFile(realpath($filename))
	);
	
	$uri = "http://v.polyv.net/uc/services/rest?method=uploadfile";
	$ch = curl_init() or die ( curl_error() );
	curl_setopt( $ch, CURLOPT_URL, $uri);
	curl_setopt( $ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 360);
	$reponse = curl_exec ( $ch );
	curl_close ( $ch );
	
	$reponse = json_decode($reponse);
	return $reponse;
}

$result = uploadfile('myTitle','myDesc','myTag',1,'E:\\1.mp4'); //cataid为1,表示用户上传空间的根目录
var_dump($result);
?>

整个API调用签名的过程是:使用服务器端开发语言对这些参数按照规则排序后,再加上secretkey做sha1计算得到sign,然后把sign和API的其他上传参数一起提交到保利威视云平台。

回调通知

在POLYV后台“系统管理——修改资料”的其他信息块,“回调URL”的录入框填入用户的接口URL(例如:http://demo.polyv.net/callback),在每次视频上传、编码、审核时,保利威视会通过get方法请求用户的接口,将参数回调通知给用户。
一、上传完成/上传不合规格视频回调
上传完成后,系统会调用回调URL,会带来三个参数sign、type和vid
  • sign:系统签名,sign是由系统用”upload”这个字符串和vid、secretkey这两个参数的值按顺序组成的字符串做MD5计算得到(如,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,secretkey的值为7UagtQOq2A,将字符串uploade2e84a738302f20a4f6eb202976f5c63_e7UagtQOq2A进行MD5计算,得到b245e3e65aa45b60dc02337b5cd914a7)
  • type:回调类型
    • upload:已上传
    • invalidVideo:不合规格视频(当上传的视频的信息无法被系统分析时,判断为不合规格视频)
  • vid:视频id
请求实例
http://demo.polyv.net/callback?sign=b245e3e65aa45b60dc02337b5cd914a7&type=upload&vid=e2e84a738302f20a4f6eb202976f5c63_e
二、编码完成/失败回调
同上传完成回调一样,编码完成之后,系统会调用回调URL:
  • sign:系统签名,sign是由系统用”encode”这个字符串和format、vid、df、secretkey这四个参数的值按顺序组成的字符串做MD5计算得到(如,format的值为flv,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,df的值为1,secretkey的值为7UagtQOq2A,将字符串encodeflve2e84a738302f20a4f6eb202976f5c63_e17UagtQOq2A进行MD5计算,得到3c3eab358901ad19bc59b5df7704ed48)
  • type:回调类型
    • encode:已编码
    • encode_failed:处理失败
  • format:编码后的视频格式
  • vid:视频id
  • df:视频清淅度版本,1为流畅、2为高清、3为超清
请求实例
http://demo.polyv.net/callback?sign=3c3eab358901ad19bc59b5df7704ed48&type=encode&format=flv&vid=e2e84a738302f20a4f6eb202976f5c63_e&df=1
三、审核操作回调
那么审核完成,recieve的链接会收到一个调用,带来三个参数sign、type和vid
  • sign:系统签名,sign是由系统用”manage”这个字符串和type、vid、secretkey这三个参数的值按顺序组成的字符串做MD5计算得到(如,type的值为pass,vid的值为e2e84a738302f20a4f6eb202976f5c63_e,secretkey的值为7UagtQOq2A,将字符串managepasse2e84a738302f20a4f6eb202976f5c63_e7UagtQOq2A进行MD5计算,得到8ebb91d444ce53fafa3256670fb65d84)
  • type:回调类型
    • pass:通过
    • nopass:未通过
    • del:删除
  • vid:视频id
请求实例
http://demo.polyv.net/callback?type=pass&vid=e2e84a738302f20a4f6eb202976f5c63_e&sign=8ebb91d444ce53fafa3256670fb65d84

以PHP为示例代码,如下:

<?php
$sign=$_GET["sign"];
$vid=$_GET["vid"];
$type=$_GET["type"];
$format=$_GET["format"];
$df=$_GET["df"];
$secretkey= "yourSecretkey"; //在“POLYV后台”——“系统管理”——“视频接口API”中获取

//获取当前上海标准时间
date_default_timezone_set("Asia/Shanghai");
$time = date('Y-m-d H:i:s',time());

//连接数据库huidiao,含upload,encode,pass三个表
$link = mysql_connect('localhost','root','');
mysql_select_db('huidiao',$link);

if($type=="upload"){
	$verifySign = md5($type.$vid.$secretkey);
	if($verifySign==$sign){
        //当上传完成时,向数据库插入上传记录
        mysql_query("insert into upload(vid,type,time) values('{$vid}','{$type}','{$time}')");
	}
}

if($type=="encode"){
	$verifySign = md5($type.$format.$vid.$df.$secretkey);
	if($verifySign==$sign){
        //当编码完成时,向数据库插入编码结果
        mysql_query("insert into encode(vid,type,format,df,time) values('{$vid}','{$type}','{$format}',{$df},'{$time}')");
	}
}

if($type=="pass"){
	$verifySign = md5("manage".$type.$vid.$secretkey);
	if($verifySign==$sign){
        //当审核通过时,向数据库插入视频状态
        mysql_query("insert into pass(vid,type,time) values('{$vid}','{$type}','{$time}')");
	}
}
?>

 

上传视频

uploadfile

    作用:上传本地视频

URL

    http://v.polyv.net/uc/services/rest?method=uploadfile

支持格式

    JSON

HTTP请求方式

    POST

请求数限制

    TRUE

请求参数

参数名必选类型及范围说明
writetokentruestring用户的上传钥匙
JSONRPCtruestringjson格式,{"title": "标题", "tag":"标签","desc":"描述"}
Filedatatruefilefile类型,支持的文件格式为:.flv,.avi,.mpg,.mp4,.wmv,.mov,.3gp,.asf等
fcharsetflasestring当fcharset设为'ISO-8859-1'时,可以避免视频的文件名乱码
cataidfalselong设定上传视频的分类,分类的id可以在“视频管理”——“内容分类”中获取,如下图所示。cataid为catatree的最后一个long型的整数,catatree由cataid组成。当cataid值为1时,表示用户上传空间的根目录。
watermarkfalsestring水印图片的URL,图片格式必须是png格式
lupingfalseint是否录屏优化。当值为1时,上传的视频不再采取默认的压缩编码机制,视频尺寸不再压缩,保证视频的清晰度。默认值为0
formatfalsestring默认返回json格式,如果format=xml返回xml格式
jsonpfalsestring 例如,正常情况{error:0,data:””},加 jsonp=a后返回a({error:0,data:””})
2

注意事项

    返回错误列表
返回说明
0无错误
1找不到writetoken关联的user
2文件为空或者writetoken为空
3提交的json名字JSONRPC为null
4提交文件格式不正确
5readtoken为空
6分页输入出错
7vid不能为空
8找不到方法名

返回结果

0
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0_b.jpg
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1_b.jpg
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_2_b.jpg
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_3_b.jpg
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_4_b.jpg
	<images_b>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_5_b.jpgebed06525ba8bed5cd1693769efae985标签http://mpv.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.mp4标题
	1
	0
	<mp4_1>http://mpv.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.mp4
	e2e84a7383b19a65833f62eee277926a_e
	1
	<swf_link>http://player.polyv.net/videos/e2e84a7383b19a65833f62eee277926a_e.swf
	<source_filesize>544638
	10
	1



	600
	<default_video>http://plvod01.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.flv
	00:00:15
	0
	<first_image>http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0.jpg
	<original_definition>448x336
	描述

http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0.jpg


http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.jpg


http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_2.jpg


http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_3.jpg


http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_4.jpg


http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_5.jpg

	450
	2016-02-17 18:14:19

JSON示例

{
error: "0",
data: [
{
images_b: [
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0_b.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1_b.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_2_b.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_3_b.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_4_b.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_5_b.jpg"
],
md5checksum: "ebed06525ba8bed5cd1693769efae985",
tag: "标签",
mp4: "http://mpv.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.mp4",
title: "标题",
df: 1,
times: "0",
mp4_1: "http://mpv.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.mp4",
vid: "e2e84a7383b19a65833f62eee277926a_e",
cataid: "1",
swf_link: "http://player.polyv.net/videos/e2e84a7383b19a65833f62eee277926a_e.swf",
source_filesize: 544638,
status: "10",
seed: 1,
flv1: "http://plvod01.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.flv",
sourcefile: "",
playerwidth: "600",
default_video: "http://plvod01.videocc.net/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.flv",
duration: "00:00:15",
filesize: [
0
],
first_image: "http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0.jpg",
original_definition: "448x336",
context: "描述",
images: [
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_0.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_1.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_2.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_3.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_4.jpg",
"http://img.videocc.net/uimage/e/e2e84a7383/a/e2e84a7383b19a65833f62eee277926a_5.jpg"
],
playerheight: "450",
ptime: "2016-02-17 18:14:19"
}
]
}

字段说明

字段说明
swf_linkFlash链接地址
tag标签
mp4视频地址
playerwidth视频宽度
title视频标题
duration视频时长
first_image视频截图
times点击次数
context视频描述
images所有截图
playerheight视频高度
ptime上传时间
vid视频id
cataid分类id, 如1为根目录
default_video用户默认播放视频
df视频码率数
flv1流畅码率flv格式视频地址
flv2高清码率flv格式视频地址
flv3超清码率flv格式视频地址
mp4_1流畅码率mp4格式视频地址
mp4_2高清码率mp4格式视频地址
mp4_3超清码率mp4格式视频地址
hls1流畅码率hls格式视频地址
hls2高清码率hls格式视频地址
hls3超清码率hls格式视频地址
hlsIndex自适应码率hls播放地址
images_b视频截图大图地址
seed加密视频为1,非加密为0
status视频状态
md5checksum上传到POLYV云平台的视频源文件的MD5值,可以用来校验是否上传错误或完整
视频状态码含义
60/61已发布
10等待编码
20正在编码
50等待审核
51审核不通过
-1已删除
如果API想调用签名,可参考http://dev.polyv.net/2015/09/apisign/ 按参数签名顺序拼凑字符串为cataid=$(cataid)&JSONRPC=$(JSONRPC)&writetoken=$(writetoken)$(secretkey),并进行sha1计算,得到sign。

上传远程视频

uploadUrlFile

    作用:上传远程视频

URL

http://v.polyv.net/uc/services/rest?method=uploadUrlFile

支持格式

JSON,XML

HTTP请求方式

POST,GET

请求数限制

TRUE

请求参数

参数名必选类型及范围说明
writetokentruestring用户的上传钥匙
fileUrltruefile远程文件的http连接(带http://)
asyncfalseboolean是否异步处理,取值为true/false,默认值为false
titlefalsestring标题
tagfalsestring标签
descfalsestring描述
cataidfalselong设定上传视频的分类,分类的id可以在“视频管理”——“内容分类”中获取,如下图所示。cataid为catatree的最后一个long型的整数,catatree由cataid组成。当cataid值为1时,表示用户上传空间的根目录。
lupingfalseint是否录屏优化。当值为1时,上传的视频不再采取默认的压缩编码机制,视频尺寸不再压缩,保证视频的清晰度。默认值为0
2

注意事项

    返回错误列表
返回说明
0无错误
1找不到writetoken关联的user
2文件为空或者writetoken为空
3提交的json名字JSONRPC为null
4提交文件格式不正确
5readtoken为空
6分页输入出错
7vid不能为空
8找不到方法名
JSON示例
    返回结果:
    {"error":"0",
     "data":
      [{"vid":"********"}]
     }

字段说明

   #vid: 视频ID
如果API想调用签名,可参考http://dev.polyv.net/2015/09/apisign/ 按参数签名顺序拼凑字符串为desc=$(desc)&fileUrl=$(fileUrl)&tag=$(tag)&title=$(title)&writetoken=$(writetoken)$(secretkey),并进行sha1计算,得到sign。

上传远程视频代码示例

首选需要一个非本地视频,一个视频链接,然后通过writetoken,执行API的uploadUrlFile方法,即可把视频直接上传到视频云端,并返回视频信息。

代码

视频文件链接: <input type="text" id="fileUrl" value="http://112.90.246.23/plvod01.videocc.net/sl8da4jjbx/2/sl8da4jjbx692db9d494a9986ab8c7a2.mp4" size="100">
writetoken: <input type="text" id="writetoken" value="Y07Q4yopIVXN83n-MPoIlirBKmrMPJu0" size="40">
<input type="button" id="button" value="点击抓取">
 标题 <input id="title" size="70">
 首图 <input id="first_image" size="70"><img src="" id="first_image_img" style="display:none">
 播放链接 <input id="swf_link" size="70">
<script>
$("#button").click(function(){
  $("#button").val("正在抓取,请稍后");
  $.get("http://v.polyv.net/uc/services/rest", {
    method:"uploadUrlFile",
    fileName:"remotefile title",
    writetoken:$("#writetoken").val(),
    fileUrl:$("#fileUrl").val()
      },function(video){
      $("#button").val("抓取完成");
          $("#title").val(video.data[0].title);
          $("#first_image").val(video.data[0].first_image);
          $("#first_image_img").attr("src",video.data[0].first_image);
          $("#first_image_img").css({display:"block"});
          $("#swf_link").val(video.data[0].swf_link);
  });
});
</script>

断点续传

原理

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

 

偏移量Offset

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

 

请求类型

HEAD
每一次HEAD类型请求,服务器总是会返回offset头部变量,标志当前上传完成的字节数。
PATCH
服务器通过PATCH类型请求接收文件上传的数据。所有PATCH请求必须使用Content-Type: application/offset+octet-stream.
上传节点
上传接口地址统一为http://upload.polyv.net:1080/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上传源码

点击在线演示