API调用方式

最近更新时间:2018-06-26 15:15:33

签名机制

点播转码OpenAPI的调用需要进行用户身份控制以防止非法访问。身份控制采用AWS签名算法进行签名认证,生成签名的方法详见签名算法

点播转码服务封装OpenAPI,对外提供三种语言(PHP/Python/JAVA)的SDK,推荐客户使用。

请求结构

客户调用金山云点播转码服务的OpenAPI接口是通过向指定服务地址发送请求,并按照OpenAPI文档说明在请求中添加相应的公共参数和接口参数来完成的。

点播转码openAPI的请求结构组成如下:

  1. 服务地址
Host Service Region
kvs.cn-beijing-6.api.ksyun.com KVS 北京
kvs.cn-shanghai-2.api.ksyun.com KVS 上海
  1. 通信协议

    支持通过 HTTP 或 HTTPS 两种方式进行请求通信,推荐使用安全性更高的 HTTPS方式发送请求。

  2. 请求方法

    点播转码的OpenAPI支持GET或POST请求,具体查看接口说明。

    注意

    • 如果使用 GET 方式,参数均从 querystring 取得;如果使用 POST 方式,公共参数均从querystring取得,接口参数从请求Json Body中取得
  3. 请求参数

    金山云OpenAPI请求包含两类参数:公共请求参数和接口请求参数。其中,公共请求参数是每个接口都要用到的请求参数,具体可参见公共参数小节;接口请求参数是各个接口所特有的,具体见各个接口的请求参数描述。

  4. 字符编码

    请求及返回结果都使用UTF-8字符集进行编码。

SDK调用流程

  1. SDK封装API请求,发往金山云IAM。

  2. IAM对HTTP请求进行鉴权,鉴权失败则返回调用方;鉴权成功后,将HTTP请求中的业务相关信息下发给点播转码API服务端。IAM同时对客户的QPM(Requests Per Minute)进行检查,超过QPM的请求会被直接拒绝,避免后端服务被少数客户的误操作打爆。

  3. 点播转码API服务处理客户请求,将处理结果封装成JSON,返回给调用方。

返回结果

调用金山云的openAPI服务,调用成功,返回的HTTP状态码(Status)为200;调用失败,返回4xx 或5xx的HTTP状态码(Status)。

金山云的媒体转码服务的调用返回的数据格式目前只支持Json格式。

调用成功

转码API服务端会返回HTTP状态码200和Json格式的消息体,Json包含通用参数和特有参数,具体详见各接口。

调用失败

在转码API工作异常时,IAM会直接返回调用方。HTTP请求返回一个4xx或5xx的HTTP状态码,返回的HTTP消息体中包含具体的错误代码(code)及错误信息(message),详见金山云身份与访问控制服务

请注意,请求ID(RequestId)是用来唯一标识本次调用请求的,在调用方找不到错误原因时,可以联系金山云客服,并提供RequestId,以便我们尽快帮您解决问题。

Json格式示例


{    

    "RequestId": "68093a99-2f63-4f39-8f70-3047ab8ecb5b",

    "Error": {

        "Type": "Sender",

        "Code": "InvalidParameterValue",

        "Message": "An invalid or out-of-range value was supplied for the input parameter PathPrefix."    

    }

}

示例

HTTP GET方法请求示例:


GET /?Action=GetPresetList&Version=2017-01-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170519T060855Z&X-Amz-Credential=AKLT6UU6Vp_9SxWW5RAW6UHtdQ%2F20170519%2Fcn-beijing-6%2Fkvs%2Faws4_request&X-Amz-SignedHeaders=accept%3Bhost&X-Amz-Signature=0bfbb4876db7cf5b57206dbdcacff7f939e1ca395581e76d70a080b8c9c7bcdb HTTP/1.1

Host: kvs.cn-beijing-6.api.ksyun.com

Accept: application/json

HTTP POST方法请求示例:


POST /?Action=Preset&Version=2017-01-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170517T132456Z&X-Amz-Credential=AKLT6UU6Vp_9SxWW5RAW6UHtdQ%2F20170517%2Fcn-beijing-6%2Fket%2Faws4_request&X-Amz-SignedHeaders=accept%3Bhost&X-Amz-Signature=a8317822a11c587d529d779557e873e4a5fcc145788547a13cb4f9ad00d92e0d HTTP/1.1

Host: kvs.cn-beijing-6.api.ksyun.com

Accept: application/json

Content-Type: application/json;charset=utf-8

Content-Length: %LEN

{

  %JSON Body

}
  • 特别注意以上示例中的Action与Version。新版媒体转码API的版本号:Version=2017-01-01,接口名Action值为各接口API。推荐使用新版SDK/API接入媒体转码

  • GET/POST示例中,HTTP header中Host为必需参数,且需要参与签名计算。而querystring中X-Amz-SignedHeaders=accept;host指定了HTTP Header中Host/Accept均需要参与签名

金山云,开启您的云计算之旅

免费注册