tencentcloud-edgeone-migration-nodejs-v2
Version:
tencentcloud cdn config copy to edgeone
94 lines (90 loc) • 2.26 kB
JavaScript
const utils = require('../utils');
const { t } = require("../../i18n/trans");
const genLog = require("../../logGenerator");
function RangeOriginPull(domain, domainConfig, ruleTransferLog) {
const keyConfig = domainConfig.RangeOriginPull;
if (!keyConfig || !keyConfig.RangeRules) {
ruleTransferLog.push({
config: t('Range 回源配置(RangeOriginPull)'),
result: t('未配置'),
detail: ''
});
genLog.defaultLog(`${t('Range 回源配置(RangeOriginPull)')}${t('未配置')}`)
return null;
}
const { RangeRules, Switch } = keyConfig;
const eoRules = [];
// 反向添加规则(CDN的规则优先级跟EO相反)
RangeRules.forEach(rule => {
eoRules.push({
'Actions': [
{
'CodeAction': null,
'NormalAction': {
'Action': 'RangeOriginPull',
'Parameters': [
{
'Name': 'Switch',
'Values': [rule.Switch]
}
]
},
'RewriteAction': null
}
],
'Conditions': [
{
'Conditions': [
{
'IgnoreCase': false,
'IgnoreNameCase': false,
'Operator': 'equal',
'Target': rule.RuleType === 'path' ? 'url' :utils.getTarget(rule.RuleType),
'Values': utils.genOriginValue(rule)
}
]
}
]
});
});
// 添加全部文件
eoRules.push({
'Conditions': eoRules?.length > 0 ? [] : [
{
'Conditions': [
{
'Operator': 'equal',
'Target': 'host',
'Values': [
'all'
]
}
]
}
],
'Actions': [
{
'NormalAction': {
'Action': 'RangeOriginPull',
'Parameters': [
{
'Name': 'Switch',
'Values': [Switch]
}
]
}
}
]
});
ruleTransferLog.push({
config: t('Range 回源配置(RangeOriginPull)'),
result: t('成功'),
detail: ''
});
genLog.successLog(`${t('Range 回源配置(RangeOriginPull)')}${t('成功')}`)
return {
'Rules': eoRules,
'Tags': []
};
}
module.exports = RangeOriginPull;