CTG海外融合CDN API
    CTG海外融合CDN API
    • 鉴权说明
    • API鉴权
      • 获取token代码示例
      • 鉴权接口
        POST
    • 域名操作
      • 域名创建
        POST
      • 域名开启
        PUT
      • 域名关闭
        PUT
      • 域名删除
        DELETE
      • 获取域名列表
        GET
    • 域名配置
      • 查询域名源站
        GET
      • 设置域名源站
        PUT
      • 查询域名回源host
        GET
      • 设置域名回源host
        PUT
      • 查询域名HTTPS
        GET
      • 设置域名HTTPS
        PUT
      • 查询域名是否强制跳转HTTPS
        GET
      • 设置域名强制跳转HTTPS
        PUT
      • 查询域名智能压缩
        GET
      • 设置域名智能压缩
        PUT
      • 查询域名IPV6
        GET
      • 设置域名IPV6
        PUT
      • 查询域名HTTP响应头域
        GET
      • 设置域名HTTP响应头域
        POST
      • 查询域名IP 黑白名单
        GET
      • 设置域名IP黑白名单
        POST
      • 查询域名Referer黑白名单
        GET
      • 设置域名Referer黑白名单
        POST
      • 查询域名UA黑白名单
        GET
      • 设置域名UA黑白名单
        POST
      • 查询域名回源协议
        GET
      • 设置域名回源协议
        PUT
      • 查询域名回源HTTP请求头
        GET
      • 设置域名回源HTTP请求头
        POST
      • 查询域名HTTP/2
        GET
      • 设置域名HTTP/2
        PUT
      • 查询域名HTTP/3
        GET
      • 设置域名HTTP/3
        PUT
      • 查询域名最低tls版本
        GET
      • 设置域名最低tls版本
        PUT
      • 查询域名回源超时时间(仅限AWS渠道)
        GET
      • 设置域名回源超时时间(仅限AWS渠道)
        PUT
      • 查询国家/地区数据(ISO)
        GET
      • 查询域名区域访问控制(仅限AWS渠道)
        GET
      • 设置域名区域访问控制(仅限AWS渠道)
        PUT
      • 获取AWS缓存策略列表
        GET
      • 查询域名缓存策略
        GET
      • 设置域名缓存策略
        PUT
      • 获取AWS回源请求头策略列表
        GET
      • 获取AWS响应头策略列表
        GET
      • 获取加速域名的AWS回源请求头策略(仅限AWS渠道)
        GET
      • 设置加速域名的AWS回源请求头策略(仅限AWS渠道)
        PUT
      • 获取加速域名的AWS响应头策略(仅限AWS渠道)
        GET
      • 设置加速域名的AWS响应头策略(仅限AWS渠道)
        PUT
    • 证书管理
      • 申请AWS证书
      • 获取AWS签发证书的验证信息
      • 上传证书
      • 更新证书
      • 获取证书列表
    • 内容管理
      • 根据预热URL获取用户的AWS预热区域和预热国家
      • 根据预热区域获取aws的所有pop点(国家)列表
      • 预取内容
      • 查询预取状态
      • 刷新内容
      • 查询刷新状态
    • 统计分析
      • 查询CDN消耗明细
      • 查询HTTP状态码请求数明细数据
      • 查询国家、地区消耗明细
      • Top域名
      • Top URL
      • Top Referer
      • Top UA
      • 查询命中流量
      • 查询命中请求数
      • 查询请求数
      • 查询HTTP状态码请求数汇总
    • 日志管理
      • 日志下载列表

    鉴权说明

    公共接口规范#

    接口地址#

    API_Address: https://ctgcdn.esurfingcloud.com

    公共请求头#

    所有API接口(鉴权接口除外)需要在请求的HTTP头域中包含以下信息:
    头域(Header)说明是否必须
    Authorization该值格式为: Bearer {token},Bearer是固定前缀,token值的获取参考下面的说明是
    Content-Typeapplication/json是

    错误信息格式#

    CDN API的错误信息除了HTTP状态码以外,在HTTP body中还包JSON格式的错误信息,内容如下:
    参数名类型说明
    errorstring有关该错误的详细说明
    例如:
    { 
        'error': 'Invalid parameter signature.'
    }

    获取token#

    获取access_key 和 secret_key:#

    登录portal平台,将鼠标移动到用户头像,在弹出的用户信息页点击AccessKey,跳转到秘钥管理页面,在此可复制对应的access_key 和 secret_key 的值
    1.png
    image.png

    计算signature方法:#

    token鉴权接口,需要用到signature值,所以需要先计算出来。计算方式如下:
    x-request-date
    发起请求的时间,格式遵循http://tools.ietf.org/html/rfc1123标准,如Wed, 21 Nov 2018 01:29:20 GMT,
    有效时间范围是5分钟内
    下面是一些计算signature的代码示例

    python#

    import hashlib
    import hmac
    from datetime import datetime
    
    
    def generate_sign(access_key,secret_key):
        '''
        返回x_request_date 和sign 值
        :param ak: 
        :param sk: 
        :return: 
        '''
        
        GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
        x_request_date = datetime.utcnow().strftime(GMT_FORMAT)
        sign = hmac.new(secret_key.encode(), (x_request_date + access_key + secret_key).encode(), hashlib.sha512).hexdigest()
        return x_request_date,sign
        
    access_key = '8965xxxxx'
    secret_key = '7fca6a33333373sssss'
    x_request_date,sign = generate_sign(access_key,secret_key)

    java#

    private String hmacSHA512(String data,String key) {
      String result = "";
      byte[] bytesKey = key.getBytes();
      final SecretKeySpec secretKey = new SecretKeySpec(bytesKey, "HmacSHA512");
      try {
          Mac mac = Mac.getInstance("HmacSHA512");
          mac.init(secretKey);
          final byte[] macData = mac.doFinal(data.getBytes());
          byte[] hex = new Hex().encode(macData);
          result = new String(hex, "ISO-8859-1");
      } catch (NoSuchAlgorithmException e) {
          // TODO 自动生成的 catch 块
          e.printStackTrace();
      } catch (InvalidKeyException e) {
          // TODO 自动生成的 catch 块
          e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
          // TODO 自动生成的 catch 块
          e.printStackTrace();
      }
      return result;
    }

    php#

    hash_hmac("sha512", x_request_date . access_key . secret_key, secret_key)

    nodejs#

    var hash = crypto.createHmac('sha512', secret_key);
    hash.update(x_request_date + access_key + secret_key);
    var hashed_data = hash.digest();

    go#

    package main
    
    import (
    	"crypto/hmac"
    	"crypto/sha512"
    	"fmt"
    )
    
    func main() {
    	//hmac ,use sha512
    	key := []byte("secret_key")
    	mac := hmac.New(sha512.New, key)
    	mac.Write([]byte("x_request_date + access_key + secret_key"))
    	fmt.Printf("%x\n", mac.Sum(nil))
    }

    请求鉴权接口#

    鉴权接口: /API/OAuth/token,具体参数请参考对应的接口文档。
    实际请求鉴权接口的时候,请将access_key、x-request-date 和 signature 替换成您自己计算的值。
    请求示例
    返回示例
    {
        "code": 1,
        "message": "OK",
        "data": {
            "token": "HY5j3NPA1E6_xxxxxxxxxxxxxxxxxxxxxxxxxxta",
            "refresh_token": "HY5j3NPA1E6_Nj-gPwJHOfOqPUEhGp9Z9r5H/k/=5bxxxxxxe/OedJObf_CW-iHAXxmrdJaFl/xY/cAZ0CaK-RZNekLDbpbA4_ar7JHUFbph1yAC4yOKVSmW6_eQRSa",
            "expire": 1714460111,
            "uid": "7733333333",
            "username": "test"
        }
    }
    返回内容中的token值,就是在以后接口请求中必须传递的认证参数. 该token有有效期,请根据自身的业务需求自行获取最新token值.
    修改于 2024-09-18 08:00:23
    下一页
    获取token代码示例
    Built with