CDN加速

文档中心 API文档 域名配置 修改防盗链配置

修改防盗链配置

更新时间:2021-11-26 09:54:42

适用产品:网页加速、下载加速、全站加速、点播加速、直播加速、移动加速、云存储

接口描述

通过接口自助实现修改域名防盗链下IP白名单配置、referer防盗链配置,实现对具体访问IP做白名单或黑名单控制或referer控制。接口url的*可为域名名称或域名id。

  • 调用URL: https://open.chinanetcenter.com/api/config/visitcontrol/*
  • 限制说明:·在中国 加速域名必须已备案完成。 · 加速域名必须不包含如下信息:出售药物和管制刀具类,含有不法言论、信息。 · 视频类加速域名必须有视听许可证;博客论坛或社区类加速域名必须有BBS专项审批资质。 · 接口请求和返回结果接受xml和json格式。

请求参数

XML
参数名称类型必填描述
visit-control-rulescomplex防盗链配置 注意: 1、需要取消防盗链配置设置时,可以传入空节点<cache-time-behaviors></cache-time-behaviors>。 2、表示需要设置防盗链配置时,此项必填
visit-control-rulecomplex防盗链配置,客户可以配置多组防盗链配置。 注意: 1、表示一组防盗链配置 2、当其他配置项都是没有入参时,data-id必填,且值为实际存在的data-id,表示清空这个data-id对应配置项的值 3、URL匹配模式、文件类型/自定义文件类型、目录、指定常用类型、指定URL,这五个参数一组防盗链规则下只能填写一个值,且必须填写一个值
data-idint配置多组配置时,具体某组配置的id。data-id可以通过查询接口获取。 注意: a、如果有传data-id,说明指定修改其中一组配置项内容,不需求修改其他组配置内容不需要入参; b、如果入参多组配置,其中有些组配置有传data-id,有些没有传,则有传data-id的表示修改具体某组配置,没有传data-id的表示在原来基础上新增一组配置; c、如果入参都没有传data-id,表示用本次的配置全量覆盖原先配置; d、如果入参没有传任何配置项参数,只传了域名和二级标签,表示清空这个接口对应域名二级服务所有配置; e、如果一组配置没有具体的配置项,则data-id必填,且值为实际存在的data-id,表示清空这个data-id对应配置项的值;不允许一组配置没有具体的配置项也没有data-id。
path-patternStringurl匹配模式,支持正则,如果是全部匹配,入参可以配置为:.*
except-path-patternString例外的url匹配模式,某些URL除外:如abc.jpg,不做防盗链功能 客户入参参考:^https?://[^/]+/.*\.m3u8
custom-patternString指定常用类型:选择需要防盗链的域名是全部文件还是首页。入参参考值: all:全部文件 homepage:首页
file-typeString文件类型:指定文件类型进行防盗链设置。 文件类型包括:gif png bmp jpeg jpg html htm shtml mp3 wma flv mp4 wmv zip exe rar css txt ico js swf 如果需要全部类型,则直接传all。多个以分号隔开,all和具体文件类型不能同时配置。
custom-file-typeString自定义文件类型:在指定文件类型外根据自身需求,填写适当的可识别文件类型。可以搭配file-type使用。如果file-type也有配置,实际生效的文件类型是两个入参的总和
specify-url-patternString指定URL缓存:根据需求指定url进行防盗链设置 入参不支持含http(s):// 开头的URI格式
directoryString目录:指定目录进行防盗链设置 输入合法的目录格式。多个以英文分号隔开
except-file-typeString例外的文件类型:指定不需要进行防盗链功能的文件类型 文件类型包括:gif png bmp jpeg jpg html htm shtml mp3 wma flv mp4 wmv zip exe rar css txt ico js swf 如果需要全部类型,则直接传all。多个以分号隔开,all和具体文件类型不能同时配置 如果file-type=all,except-file-type=all 则表示不匹配任务文件类型
except-custom-file-typeString例外的自定义文件类型:在指定文件类型外根据自身需求,填写适当的可识别文件类型。可以搭配except-file-type使用。如果except-file-type也有配置,实际生效的文件类型是两个入参的总和
except-directoryString例外的目录:指定不需要进行进行防盗链设置的目录 输入合法的目录格式。多个以英文分号隔开
control-actionString控制方向。可选值:403和302 1) 403表示返回特定的错误状态码来拒绝服务(默认方式,状态码可以指定,一般为403)。 2) 302表示返回302 Found的重定向url,重定向的url可以指定。如果传302,rewrite-to必填
rewrite-toString指定302跳转后的url。如果control-action值为302,此项必填,值需为具体调整的url,不支持正则。如果control-action值为403,此项填不需要输入,值无效
priorityint表示客户多组重定向内容的优先执行顺序。数字越大,优先级越高。 新增配置项时,不传默认为 10
ip-control-rulecomplex标识IP黑白名单防盗链 注意: 1、表示一组黑白名单防盗链,一个data-id下只能一组 2、当传空标签表示清楚例外的IP段配置和禁止的IP段配置。
forbidden-ipsString禁止的IP段 支持输入IP或IP段,IP段之间用分号(;)隔开,如1.1.1.0/24;2.2.2.2 禁止的IP和例外的IP,只能一个有值
allowed-ipsString例外的IP段,支持输入IP或IP段,IP段之间用分号(;)隔开,如1.1.1.0/24;2.2.2.2,某些IP例外,不做防盗链
referer-control-rulecomplex标识referer防盗链 注意: 1、表示一组referer防盗链,一个data-id下只能一组 2、当传空标签表示清除referer防盗链 3、合法refer、(合法域名、合法URL)、非法refer、(非法域名、非法URL)这四项,一个data-id下只能配置一个或者都为空 4、匹配条件一致或者有存在交集的情况下(匹配条件包括URL匹配模式;文件类型;自定义文件类型;目录;指定常用类型;指定url),且控制动作均为禁止时,多条配置不能同时配置<合法refer>或者<合法域名>或者<合法URL>或者(<合法域名>和<合法URL>)
allow-null-refererstring是否允许空referer:合法refer、(合法域名、合法URL)、非法refer、(非法域名、非法URL)这六项任意一项有值,则“是否允许空referer”不能为空;合法refer、(合法域名、合法URL)、非法refer、(非法域名、非法URL)这四项都为空值,则“是否允许空referer”必须为空
valid-refererstring合法referer.可以输入url或域名,支持正则,可以多个,多个以空格隔开
valid-urlstring合法url,输入正确的url格式,不支持正则,可以多个,多个以分号分割。
valid-domainstring合法域名,不支持正则,可以多个,多个以分号分割
invalid-refererstring非法referer,可以输入url或域名,支持正则,可以多个,多个以空格隔开
invalid-urlstring非法url,输入正确的url格式,不支持正则,可以多个,多个以分号分割
invalid-domainstring非法域名,不支持正则,可以多个,多个以分号分割
ua-control-rulecomplex标识UA头防盗链, 注意: 1、表示一组UA头防盗链,一个data-id下只能一组 2、当传空标签表示清除UA头防盗链
valid-user-agentsstring允许的客户端,正则匹配,不允许空格,配置多个UA如:<valid-user-agents>Android|iPhone</valid-user-agents>
invalid-user-agentsstring禁止的客户端,正则匹配,不允许空格,配置多个UA如:<invalid-user-agents>Android|iPhone</invalid-user-agents>

返回参数

XML&JSON
参数名称类型描述
http status codeinthttpstatus=202;   表示成功调用新增域名接口,可使用header中的x-cnc-request-id查看当前新增域名的部署情况
x-cnc-request-idString唯一标示的id,用于查询每次请求的任务 (适用全部接口)
LocationString用于访问该域名信息的URL,其中domain-id为我司云平台为该域名生成的唯一标示,其值为字符串。
codeString错误代码,当HTTPStatus不为202时出现,表示当前请求调用的错误类型
messageString响应信息,成功时为success

错误码

错误代码(code)描述(message)HTTP状态码语义
InvalidParameterThe request has null config with null data-id, please remove it.400其他属性都为空,dataId不能为空

示例

JSON
XML
示例说明
请求示例
复制
#!/bin/bash
username="example_username"
apiKey="example_apiKey"
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://open.chinanetcenter.com/api/config/visitcontrol/123344" \
-X "PUT" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-d '
{
    "visit-control-rules": [{
        "ip-control-rule": {
            "forbidden-ips": "1.2.3.4"
        },
        "priority": 9,
        "control-action": "403",
        "rewrite-to": "",
        "except-directory": "",
        "directory": "/home/",
        "specify-url-pattern": "",
        "custom-file-type": "",
        "path-pattern": "",
        "referer-control-rule": {
            "allow-null-referer": "true",
            "valid-domain": "c.com;d.com",
            "valid-url": "http://b.com"
        },
        "ua-control-rule":{
            "valid-user-agents":"Android|iPhone",
            "invalid-user-agents":""
        }
    }]
}'
返回示例
复制
HTTP/1.1 202 Accepted
Date: Sun, 05 May 2019 09:08:53 GMT
Content-Type: application/json;charset=utf-8
x-cnc-request-id: 83bbebc7-2c95-47d7
{"message":"success"}