tencentcloud-edgeone-migration-nodejs-v2
Version:
tencentcloud cdn config copy to edgeone
84 lines (78 loc) • 2.2 kB
JavaScript
const utils = require('../utils');
const { t } = require("../../i18n/trans");
const genLog = require("../../logGenerator");
function PathBasedOrigin(domain, domainConfig, ruleTransferLog) {
const keyConfig = domainConfig.Origin.PathBasedOrigin;
if (!keyConfig || !keyConfig.length) {
ruleTransferLog.push({
config: t('分路径回源配置(Origin.PathBasedOrigin)'),
result: t('未配置'),
detail: ''
});
genLog.defaultLog(`${t('分路径回源配置(Origin.PathBasedOrigin)')}${t('未配置')}`)
return null;
}
const eoRules = [];
keyConfig.forEach(rule => {
const [origin, port, weight] = rule.Origin[0].split(':');
let eoRule = {
'Conditions': [
{
'Conditions': [
{
'Operator': 'equal',
'Target': rule.RuleType === 'path' ? 'url' :utils.getTarget(rule.RuleType),
'IgnoreCase': false,
'Values': utils.genOriginValue(rule)
}
]
}
],
'Actions': [
{
'NormalAction': {
'Action': 'Origin',
'Parameters': [
{
'Name': 'Type',
'Values': [
'IP_DOMAIN'
]
},
{
'Name': 'DomainName',
'Values': [origin]
},
{
'Name': 'OriginProtocol',
'Values': [
'follow'
]
},
{
'Name': 'HttpOriginPort',
'Values': [port !== undefined ? port : '80']
},
{
'Name': 'HttpsOriginPort',
'Values': [port !== undefined ? port : '443']
}
]
}
}
]
};
eoRules.push(eoRule);
});
ruleTransferLog.push({
config: t('分路径回源配置(Origin.PathBasedOrigin)'),
result: t('成功'),
detail: ''
});
genLog.successLog(`${t('分路径回源配置(Origin.PathBasedOrigin)')}: ${t('成功')}`)
return {
'Rules': eoRules,
'Tags': []
};
}
module.exports = PathBasedOrigin;