API使用方法

最近更新时间:2020-05-25 17:58:27

签名机制

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

直播转码服务封装openAPI,对外提供三种语言(PHP/Python/JAVA)的SDK,主要设置转码模板,发起外网拉流、轮播任务。对于只使用直播转码的客户,请联系技术支持代为设置直播转码模板。

请求结构

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

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

  1. 服务地址

    直播转码的服务线上正式接入地址为:ket.cn-beijing-6.api.ksyun.com

  2. 通信协议

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

  3. 请求方法

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

    注意

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

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

  5. 字符编码

    请求及返回结果都使用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格式,可通过设置HTTP Header Accept=application/json来指定返回数据格式。

调用成功

调用成功返回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."    

    }

}

公共参数

参数说明

公共请求参数是每个身份与访问管理接口都需要使用到的请求参数。详见KOP API公共参数

示例

HTTPS GET方法请求示例:


GET /?Action=GetPresetList&Version=2017-01-01&UniqName=mytest&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170517T131355Z&X-Amz-Credential=AKLT6UU6Vp_9SxWW5RAW6UHtdQ%2F20170517%2Fcn-beijing-6%2Fket%2Faws4_request&X-Amz-SignedHeaders=accept%3Bhost&X-Amz-Signature=1b55ca5217cf02ec38c9e19ecdcf2d5ebe9d37353b9da625461d514bfe79df57 HTTP/1.1

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

Accept: application/json

HTTPS 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: ket.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均需要参与签名

  • 老版直播转码API请参照金山云视频云老版直播转码API文档

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

免费注册