UNPKG

tencentcloud-edgeone-migration-nodejs-v2

Version:

tencentcloud cdn config copy to edgeone

89 lines (84 loc) 2.28 kB
const utils = require('../utils'); const { t } = require("../../i18n/trans"); const genLog = require("../../logGenerator"); function MaxAge(domain, domainConfig, ruleTransferLog) { const keyConfig = domainConfig.MaxAge; if (!keyConfig || !keyConfig.MaxAgeRules || !keyConfig.MaxAgeRules.length || keyConfig.Switch !== 'on') { ruleTransferLog.push({ config: t('浏览器缓存过期配置(MaxAge)'), result: t('未配置'), detail: '' }); genLog.defaultLog(`${t('浏览器缓存过期配置(MaxAge)')}${t('未配置')}`) return null; } const { MaxAgeRules } = keyConfig; const eoRules = []; // 反向添加规则(CDN的规则优先级跟EO相反) MaxAgeRules.forEach(rule => { let eoRule = {}; if (rule.MaxAgeType === 'all') { eoRule = { 'Conditions': [ { 'Conditions': [ { 'Operator': 'equal', 'Target': 'host', 'Values': [ 'all' ] } ] } ], 'Actions': [] }; } else { eoRule = { 'Conditions': [ { 'Conditions': [ { 'Operator': 'equal', 'Target': utils.getTarget(rule.MaxAgeType), 'IgnoreCase': false, 'Values': rule.MaxAgeType === 'path' ? rule.MaxAgeContents.map(path => { return `https://${domain}${path}`; }) : rule.MaxAgeContents } ] } ], 'Actions': [] }; } eoRule.Actions.push({ 'NormalAction': { 'Action': 'MaxAge', 'Parameters': [ { 'Name': 'FollowOrigin', 'Values': [rule.FollowOrigin] }, { 'Name': 'MaxAgeTime', 'Values': [String(rule.MaxAgeTime)] } ] } }); eoRules.push(eoRule); }); ruleTransferLog.push({ config: t('浏览器缓存过期配置(MaxAge)'), result: t('成功'), detail: '' }); genLog.successLog(`${t('浏览器缓存过期配置(MaxAge)')}${t('成功')}`) return { 'Rules': eoRules, 'Tags': [] }; } module.exports = MaxAge;