欢迎,请 登录 | 注册 | 加入收藏

上传api接口说明

上传接口说明

ppvod 的上传是基于标准 web页面上传,是分片式的上传,以保证最大化的传输效率及断点续传,用户需要对上传的文件进行固定尺寸的分片,每次上传一个分片,当所有分片上传完成后,向服务器发送合并分片的请求,完成文件的整体上传。基本流程如下:

上传流程示意图.png

  • 检测分片是否存在(chunkCheck)时 ,如果分片已经存在可以直接跳过,传输下一个分片,依次类推
  • 文件分片不宜过小,建议按照 10 * 1024 * 1024 进行分片
  • 注意,文中提到的md5是文件的md5,而不是分片的

服务器默认端口2100,例如 http://xxx.com:2100,本文中的接口示例只标注相对路径。编码实现时需要带上服务器ip或域名。

接口中出现的 userId 和uploadkey 就是上传密钥,要与“PPVOD后台-上传设置-上传密钥”的设置一致,可以为空。

文件是否存在检测

通过MD5检测上传的文件是否已经存在,如果存在,返回文件信息,URL请求参数说明:

  • status 固定值 md5Check
  • md5 md5值
  • uploadkey 上传秘钥
http请求:
GET '/uploads?status=md5Check&uploadkey=uploaddkey&md5=文件md5值'

文件存在响应如下: 
 {
      ifExist: 1,
      duration: 30, //影片时长
      title: "",//标题
      path: "", //路径
      pic: "", //图片路径
      size : 1234, //文件尺寸
      pics: "",
      gif: "", //动态图片路径
      qr: "", //二维码路径
      orgfile: "", //原始文件
      url: "", //m3u8的url
      mp4: "", // mp4 文件路径
      share: "" //分享地址路径
}

文件不存在响应如下: 
{
      ifExist: 0
}

秘钥错误响应如下:
{ 
    err_code: 1, 
    err_desc: "key error." 
}

分片检测

检测指定的文件分片是否存在,URL请求参数说明:

  • chunkIndex 表示分片索引,从0开始计数。
  • name 文件的md5值
  • size 当前分片长度
http请求:
GET '/uploads?status=chunkCheck&name=md5&size=1024000&chunkIndex=3'


分片存在响应如下:
{
    ifExist: 1
}



分片不存在响应如下:
{
    ifExist: 0
}

分片上传

通过标准 的form表单方式上传文件分片,注意form 表单的编码类型应该为 multipart/form-data.
form表单字段说明:

  • userId 上传秘钥
  • uniqueFileName 文件的md5值
  • chunk 当前上传的分片索引,从0开始计数
  • file 分片数据

在ppvod 8.5.13 以前的版本,file 字段需要包含 文件名的信息。之后的版本,将不再要求此信息。

http请求:
POST /uploads

此请求根据状态码判断上传结果
200: 上传成功 
401: 秘钥错误
406: 缺少必要的参数 如 uniqueFileName,chunk

注意在上传时,请保证userId 是表单中的第一个字段,如果编程实现,构造formdata 时候,也务必保证将userId 字段放在分片内容之前,否则会出现校验失败。

分片合并

所有分片传输完成后,执行此操作,服务器将对之前上传的所有分片进行校验并合并,URL请求字段说明:

  • status 固定值chunksMerge
  • md5 文件的md5值
  • chunks 分片总数
  • name 文件的md5值
  • fileoldname 原始文件名(不带扩展名)
  • ext 原始文件扩展名(不带.) 比如 mp4

其中name和md5字段的内容一致,都是文件的md5值,需要同时传递。

http请求:
GET /uploads?status=chunksMerge&md5=xxxx&chunks=3&name=xxxx&fileoldname=video&ext=mp4

合并成功响应:
 {
    duration: 30, //影片时长
    title: "",//标题
    path: "", //路径
    pic: "", //图片路径
    pics: "",
    gif: "", //动态图片路径
    qr: "", //二维码路径
    orgfile: "", //原始文件
    size :1234,//文件尺寸
    url: "", //m3u8的url
    mp4: "", // mp4 文件路径
    share: "" //分享地址路径
}

合并失败响应:
{ 
    error: "错误描述" 
}

> 用户实现此接口时,通过检查 error 字段,如果存在,表示有错误。
> error 可能有如下取值:
  1. 文件不完整
  2. 文件长度错误 
  3. 缺少 uniqueFileName 参数!
  4. 缺少 chunks 参数!  



PPVOD视频点播系统下载地址:http://www.ppvod.com/dianbo/xiazai/440.html
PPVOD全能直播软件下载地址:http://www.ppvod.com/zhibo/xiazai/511.html
在线服务QQ:250093148

收缩