通用说明
所有文档

          视频创作分发平台 VideoWorks

          通用说明

          API认证机制

          所有API的安全认证一律采用Access Key与请求签名机制; Access Key由Access Key IDSecret Access Key组成,均为字符串;对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串;提交认证字符串放在Authorization头域里;服务端根据生成算法验证认证字符串的正确性; 认证字符串的格式为bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}

          • version是正整数;
          • timestamp是生成签名时的UTC时间;
          • expirationPeriodInSeconds表示签名有效期限;
          • signedHeaders是签名算法中涉及到的头域列表;头域名之间用分号(;)分隔,如host;x-bce-date;列表按照字典序排列;(本API签名仅使用host和x-bce-date两个header)
          • signature是256位签名的十六进制表示,由64个小写字母组成。

          当VideoWorks接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对;如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

          鉴权认证机制的详细内容请参见鉴权认证

          日期与时间规范

          日期与时间的表示有多种方式;为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:

          1. 表示日期一律采用YYYY-MM-DD方式,例如2014-06-01表示2014年6月1日;
          2. 表示时间一律采用hh:mm:ss方式,并在最后加一个大写字母Z表示UTC时间;例如23:00:10Z表示UTC时间23点0分10秒;
          3. 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如2014-06-01T23:00:10Z表示UTC时间2014年6月1日23点0分10秒。

          规范化字符串

          通常一个字符串中可以包含任何Unicode字符,在编程中这种灵活性会带来不少困扰,因此引入“规范字符串”的概念;一个规范字符串只包含百分号编码字符以及URI(Uniform Resource Identifier)非保留字符(Unreserved Characters)。

          RFC 3986规定URI非保留字符包括以下字符:字母(A-Z,a-z)、数字(0-9)、连字号(-)、点号(.)、下划线(_)、波浪线(~)。

          将任意一个字符串转换为规范字符串的方式是:

          • 将字符串转换成UTF-8编码的字节流;
          • 保留所有URI非保留字符原样不变;
          • 对其余字节做一次RFC 3986中规定的百分号编码(Percent-Encoding),即一个%后面跟着两个表示该字节值的十六进制字母,字母一律采用大写形式。

          示例: 原字符串:this is an example for 测试; 对应的规范字符串:this%20is%20an%20example%20for%20%E6%B5%8B%E8%AF%95

          通信协议

          VideoWorks API支持HTTP和HTTPS两种调用方式;为了提升数据的安全性,建议通过HTTPS调用。

          接口规范

          数据交换格式为JSON,所有request/response body内容均采用UTF-8编码。

          请求头

          VideoWorks API需要在请求的HTTP头域中包含以下信息:

          公共头部 描述
          host 请求host:bvw.bj.baidubce.com
          x-bce-date 表示日期的字符串,符合API规范,具体请参考日期与时间规范
          authorization 包含Access Key与请求签名,具体请参考鉴权认证
          content-type application/json; charset=utf-8

          作为示例,以下是一个标准的用户处理媒资时的请求头域:

          POST /v{version}/media?process HTTP/1.1
          x-bce-date: {utc-date-string}
          host: bvw.bj.baidubce.com
          content-type: application/json
          authorization: {bce-authorization-string}

          请求体

          VideoWorks API要求使用JSON格式的结构体来描述一个请求的具体内容。 作为示例,以下是一个标准的用户处理媒资时的请求消息体格式:

          {
              "sourceBucket":"source bucket",
              "sourceKey":"source key",
              "title":"media title",
              "description":"media description",
              "workflowName":"workflow name",
              "dynamicParams":"dynamic params"
          }

          响应格式

          VideoWorks API均采用JSON格式的消息体作为响应返回的格式; 响应的HTTP头域中包括以下信息:

          公共头部 描述
          content-type application/json; charset=utf-8
          x-bce-request-id VideoWorks后端生成,并自动设置到响应头域中

          作为示例,以下是一个标准的用户处理媒资时的完整的响应返回:

          HTTP/1.1 200 OK
          Transfer-Encoding: chunked
          x-bce-request-id: 012b9747-f13a-4a2c-a488-02b221844dca
          Cache-Control: no-cache
          Server: BWS
          Date: Tue, 24 Mar 2015 13:34:07 GMT
          Content-Type: application/json;charset=UTF-8
          {
              "mediaId":"mda-gaefib8idcyi36q8",
              "instanceId":"ins-jfhgd6wv6atg0x1n"
          }

          错误信息

          所有错误信息除了使用HTTP状态码以外,同时在内容中包括requestIdcodemessage

          参数名 类型 说明
          requestId String 导致该错误的requestId
          code String 字符串,用于表示具体错误类型
          message String 有关该错误的详细说明
          上一篇
          服务域名
          下一篇
          错误返回