UNPKG

tencentcloud-edgeone-migration-nodejs-v2

Version:

tencentcloud cdn config copy to edgeone

94 lines (90 loc) 2.26 kB
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;