修改域名配置

最近更新时间:2020-03-20 10:10:44

接口描述

UpdateCdnConfig 用于修改加速域名对应的配置信息。
请求域名:cdn.api.qcloud.com

注意:

  • 一次仅支持修改一个域名的配置信息。
  • 支持一次对指定域名的多项配置信息进行一次性修改。
  • 调用频次限制为100次/分钟。
  • 接口已支持子账号调用,权限配置请参见 权限配置示例

支持配置:

  • 修改源站配置。
  • 修改备站信息。
  • 修改回源 host。
  • 开启/关闭过滤参数。
  • 修改 refer 黑白名单配置。
  • 修改 IP 黑白名单配置。
  • 开启/关闭视频拖拽。
  • 修改缓存过期时间配置。
  • 开启/关闭高级缓存过期配置。
  • 开启/关闭中间源配置。
  • 修改智能压缩配置(此配置尚在内测阶段)。
  • 配置带宽封顶。
  • 设置 response header。
  • 设置 request header。
  • 设置 SEO 优化。
  • 设置302跟随。
  • 设置 range 回源。
  • 设置 IP 访问限频。
  • 状态码缓存时间配置。
  • 时间戳防盗链配置。
  • 单链接下行限速。

查看调用示例

入参说明

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,详情请参见 公共请求参数。其中,此接口的 Action 字段为 UpdateCdnConfig。

参数名称 是否必选 类型 描述
hostId Int 要修改配置的域名对应 ID,hostId 与 host 必须填充一个。
host String 要修改配置的域名,hostId 与 host 必须填充一个。
hostType String 修改源站时填充
  • "cname":自有源站接入。
  • "cos":cos 源站接入。选择 cos 源接入时,fwdHost 需要与 origin 一致。
  • origin String 源站设置
  • "cname"模式:支持配置一个域名,或多个源站 IP。端口可配置区间0 - 65535。
  • 域名模式:www.test.com:8080
  • IP 模式:1.1.1.1:8080;2.2.2.2:8080。
  • "cos"模式:填充 cos 外网域名,cosV4 时,仅支持自有账号下 bucket 设置为源站。
  • backupOrigin String 备份源站设置,支持配置一个域名,或多个源站 IP。端口可配置区间0 - 65535。
  • 域名模式:www.test.com:8080
  • IP 模式:1.1.1.1:8080;2.2.2.2:8080。
  • fwdHost String 回源 host,CDN 节点回源时所带的 HTTP 头部 host 参数。
    fullUrl String 过滤参数配置
  • "on":表示关闭过滤参数。
  • "off":表示开启过滤参数。
  • refer String 防盗链设置,详细说明见下文。
    accessIp String IP 黑白名单配置,重复设置,数据覆盖,以最后一次变更为准,详细说明见下文。
    videoSwitch String 视频拖拽配置
  • "on":表示开启视频拖拽。
  • "off":表示关闭视频拖拽。
  • cache String 缓存过期时间配置,详细说明见下文。
    cacheMode String 缓存模式设置
  • "simple":表示缓存完全依赖控制台设置。
  • "custom":表示缓存依赖控制台设置的缓存时间和源站吐出的 max-age 的最小值。
  • middleResource String 中间源配置
  • "on":开启中间源。
  • "off":关闭中间源。
  • compression String 智能压缩配置,详细说明见下文。
    capping String 带宽封顶设置,详细说明见下文。
    rspHeader String Response Header 设置, 详细说明见下文。
    reqHeader String Request Header 设置,详细说明见下文。
    seo String seo优化设置
  • "on":开启SEO优化。
  • "off":关闭SEO优化。
  • 默认 SEO 优化为关闭状态。
    follow302 String 302跟随设置
  • "on":开启302跟随。
  • "off":关闭302跟随。
  • 默认302跟随为关闭状态。
    rangeOrigin String range回源设置
  • "on":开启range回源。
  • "off":关闭range回源。
  • 默认 range 回源为开启状态。
    ipFrequenceLimit Int IP 访问限频设置
  • 0:未开启。
  • 大于0的整数:单 IP 单节点 QPS 限制。
  • statusCodeCache String 状态码缓存时间设置。格式为指定状态码(目前仅开放404)缓存时间。
    参数示例: {"404":10}
    safetyChain String 时间戳鉴权设置,详细说明见下文。
    speedLimit Int 单链接下行速度限制,配置为大于0的正整数,单位为 MB/s。
    0:表示取消限速。

    详细说明

    refer

    参数示例

    [1,["qq.baidu.com", "*.baidu.com"],1]

    第一个字段标识 refer 类型:

    • 0: 不设置防盗链。
    • 1:设置黑名单。
    • 2:设置白名单。

    第二个字段为具体的名单列表,第三个字段为是否包含空refer:

    • 1:包含空refer。
    • 0:不包含空refer。

    accessIp

    参数示例

    {"type":1,"list":["1.2.3.4","2.3.4.5"]}

    第一个参数 type 为黑白名单类型:

    • 0:取消黑白名单配置
    • 1:黑名单
    • 2:白名单

    第二个参数 list 表示对应的黑名单 IP 列表,支持 /8、/16、/24格式的网段设置。

    最多可设置100条 IP 黑名单,或者50条 IP 白名单。

    cache

    参数示例

    [[0,"all",1000],[1,".jpg;.js",2000],[2,"/www/html",3000],[3,"/www/1.html",1000],[5,"/",1000]]

    第一个参数是缓存类型,有如下几种:

    • 0:全部类型,表示匹配所有文件,默认缓存配置。
    • 1:文件类型,表示按文件后缀匹配。
    • 2:文件夹类型,表示按目录匹配。
    • 3:全路径匹配。
    • 5:设置首页。

    第二个参数指定匹配规则:

    • 0:固定填充 “all”。
    • 1:后缀,.jps;.js 等,; 分隔。
    • 2:目录,如 /www/html; /www/anc 等,; 分隔。
    • 3:全路径,如 /www/1.html; /www/2.html 等,; 分隔。
    • 5:首页,即 /。

    第三个参数指定缓存时间,单位为秒。
    cache 按照规则顺序,从前到后,优先级依次从低到高。

    compression

    (此配置尚在内测阶段)
    参数示例

    {"rule":
    [{"compress":"on","compress_type":["brotli"],"file_type":".js;.css"},
    {"compress":"off","compress_type":["gzip"],"file_type":".xml;.doc"}]}

    第一个参数 compress 是压缩状态设置,on 表示压缩,off 表示不压缩。

    第二个参数 compress_type 指定压缩格式,支持如下两种:

    • gzip
    • brotli

    第三个参数 file_type 指定压缩设置匹配的文件格式(后缀),如 .css;.js 等,; 分隔,最长不能超过100个字符。

    capping

    参数示例

    {"bandwidth":1000000, "unit":"K", "overflow":"origin", "active":"yes"}

    说明如下:

    • bandwidth:带宽封顶值,单位为 bps。
    • uint:控制台展示用的单位,将上述设定值(bps)转为其他单位展示,K 表示 Kbps,M 表示 Mbps,G 表示 Gbps,T 表示 Tbps。
    • overflow:设置超出阈值后响应,origin 表示全量回源站,404表示所有请求均返回404。
    • active:yes 表示开启封顶设置, no 表示关闭封顶设置。

    rspHeader

    参数示例

    {"Content-Language":"zh_CN","Access-Control-Allow-Origin":"https://www.test.com"}

    目前 Response Header 仅支持以下头部设置:

    • Content-Disposition
    • Content-Language
    • Access-Control-Allow-Origin
    • Access-Control-Allow-Methods
    • Access-Control-Max-Age
    • Access-Control-Expose-Headers

    按照 HTTP 协议规范,Access-Control-Allow-Origin 仅能设置为 * ,或者一个域名(需要带http:// 或https:// 头部),value 值不能超过1000个字节。

    reqHeader

    参数示例

    {"cdn":"tencent"}

    value 值不能超过1000个字节。

    safetyChain

    参数示例

    {"switch":"on","key":"abcdef","type":1,"time_format":10,"ttl_time":9999}
    • switch:是否开启鉴权配置,on代表开启,off代表关闭。
    • key:鉴权密钥,用户自定义设置或随机生成的6 - 32位字符,由大小写字母或数字组成。
    • time_format:时间戳格式,10代表十进制,16代表十六进制。
    • ttl_time:过期时间,签名有效时间,单位为秒。
    • type:时间戳类型,目前暂时提供一种时间戳防盗链类型,需要填充1。
    说明:

    API 接口仅支持鉴权模式 TypeD 配置,其他鉴权模式 TypeA/B/C 需到 CDN 控制台 进行配置。

    更多鉴权配置请参见 鉴权配置

    出参说明

    参数名称 类型 描述
    code Int 公共错误码,0表示成功,其他值表示失败。
    详情请参见错误码页面 公共错误码
    message String 模块错误信息描述,与接口相关。
    codeDesc String 英文错误信息,或业务侧错误码。
    详情请参见错误码页面 业务错误码

    调用案例

    示例参数

    host:www.test.com
    reqHeader:{"cdn":"tencent"}

    GET 请求

    GET 请求需要将所有参数都加在 URL 后:

    https://cdn.api.qcloud.com/v2/index.php?
    Action=UpdateCdnConfig
    &SecretId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    &Timestamp=1462872270
    &Nonce=541116052
    &Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    &host=www.test.com
    &reqHeader=%7B%22cdn%22%3A%22tencent%22%7D

    POST 请求

    POST 请求时,参数填充在 HTTP Request-body 中,请求地址:

    https://cdn.api.qcloud.com/v2/index.php

    参数支持 form-data、x-www-form-urlencoded 等格式,参数数组如下:

    array (
      'Action' => 'UpdateCdnConfig',
      'SecretId' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      'Timestamp' => 1462872294,
      'Nonce' => 479724541,
      'Signature' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      'host' => 'www.test.com',
      'reqHeader' => '{"cdn":"tencent"}'
    )

    结果示例

    {
        "code": 0,
        "message": "",
        "codeDesc": "Success"
    }
    {
        "code": 4000,
        "message": "(9175)部署中状态 cdn host in progress[host in progress]",
        "codeDesc": "UserRequestError"
    }