The CDN Rule Engine SDK for Python
Project description
CDN Rule Engine Python SDK
Installation
require python version >= 3.5
pip3 install --user byteplus-cdn-rule-engine-sdk
Upgrade sdk version from old one
pip3 install --upgrade byteplus-cdn-rule-engine-sdk
Examples
示例1
设置规则,任意条件下,设置缓存时间为0秒。
from cdn_rule_engine_sdk.rule_engine.Const import Const
from cdn_rule_engine_sdk.rule_engine.Rule import Rule, Condition, Action
def get_rule_example_1():
rule = Rule()
condition = Condition({
"IsGroup": False,
"Connective": Const.ConnectiveAnd,
"Condition": {
"Object": Const.ConditionAlways,
}
})
action = Action({
"Action": Const.ActionCacheTime,
"Groups": [{
"Dimension": Const.ActionCacheTime,
"GroupParameters": [{
"Parameters": [
{
"Name":"ttl",
"Values": ["0"]
},
{
"Name":"ttl_unit",
"Values": ["sec"]
},
{
"Name":"cache_policy",
"Values": [Const.CacheDefault]
},
{
"Name":"force_cache",
"Values": ["true"]
}
]
}]
}]
})
rule.if_block.condition = condition
rule.if_block.actions.append(action)
return {
"Switch": True,
"Rules": [
{
"Name": "test",
"Rule": rule.encode_to_string()
}
]
}
示例2
设置规则,当客户端请求协议为http时,添加客户端响应头X-Rsp-1=123
from cdn_rule_engine_sdk.rule_engine.Const import Const
from cdn_rule_engine_sdk.rule_engine.Rule import Rule, Condition, Action
def get_rule_example_2():
rule = Rule()
condition = Condition({
"IsGroup": False,
"Connective": Const.ConnectiveAnd,
"Condition": {
"Object": Const.ConditionHTTPProtocol,
"Operator": Const.OperatorEqual,
"Value": [Const.HTTP]
}
})
action = Action({
"Action": Const.ActionResponseHeader,
"Groups": [{
"Dimension": Const.ActionResponseHeader,
"GroupParameters": [{
"Parameters": [
{
"Name": "action",
"Values": [Const.Set]
},
{
"Name": "header_name",
"Values": ["X-Rsp-1"]
},
{
"Name": "header_value",
"Values": ["123"]
}
]
}]
}]
})
rule.if_block.condition = condition
rule.if_block.actions.append(action)
return {
"Switch": True,
"Rules": [
{
"Name": "test",
"Rule": rule.encode_to_string()
}
]
}
示例3
查询当前配置(假设是示例2),并将头部值修改为111;同时添加一个动作:开启视频拖拽。
from cdn_rule_engine_sdk.rule_engine.Const import Const
from cdn_rule_engine_sdk.rule_engine.Rule import Rule, Condition, Action
def get_rule_example_3():
re_config = get_rule_example_2()
rule = Rule()
rule.decode_from_string(re_config['Rules'][0]['Rule'])
for act in rule.if_block.actions:
if act.action == Const.ActionResponseHeader:
act.groups[0].group_parameters[0].set("header_value", ["111"])
rule.if_block.actions.append(Action({
"Action": Const.ActionVideoDrag,
"Groups": [{
"Dimension": Const.ActionVideoDrag,
"GroupParameters": [{
"Parameters": [
{
"Name": "switch",
"Values": [Const.SwitchTrue]
}
]
}]
}]
}))
re_config['Rules'][0]['Rule'] = rule.encode_to_string()
return re_config
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cdn_rule_engine_sdk-0.0.2.tar.gz
(12.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cdn_rule_engine_sdk-0.0.2.tar.gz.
File metadata
- Download URL: cdn_rule_engine_sdk-0.0.2.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2d65dc5f7188ee18946df3a8d8e3ef201034cc5577e7c1614226f997035e78e
|
|
| MD5 |
0a1c45b9ef255320af337f909ddbf19d
|
|
| BLAKE2b-256 |
d5297fdedc2b05a5c93439094534602a1f9e578fb1a3df56d460c2cd8f6d763e
|
File details
Details for the file cdn_rule_engine_sdk-0.0.2-py3-none-any.whl.
File metadata
- Download URL: cdn_rule_engine_sdk-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eecd2f34d8396de8c5173d51083ac96389bb92ce992047ed8bda952dc84e344e
|
|
| MD5 |
83469050e4268ef78aa4f435de0fa230
|
|
| BLAKE2b-256 |
6a9daac4eb3cc0e0e13c20ae9ac6184309119e51578245b80c6cd4676b26994b
|