ADF v2事件触发场景下输入文件名格式合规校验咨询
ADF v2 事件触发场景下文件名合规校验实现方案
前置准备
事件触发器触发管道时,可直接通过表达式 @triggerBody().fileName 拿到触发的文件全名,直接在校验逻辑中引用即可。
方案1:管道内If Condition直接校验(轻量场景首选)
无需额外组件,直接在管道层完成校验,适合仅需要校验文件名、不需要提前解析文件内容的场景:
- 管道中新增「If Condition」活动
- 写入条件表达式:
@regex(triggerBody().fileName, '^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[0-9]{6}_[0-9]+\.[Cc][Ss][Vv]$')
正则规则说明:匹配
[字母数字]_[字母数字]_[6位数字年月]_[数字时间戳].csv格式,同时兼容csv后缀大小写
- 配置分支逻辑:
- 条件为True的分支:接入后续正常的文件处理逻辑
- 条件为False的分支:接入异常处理逻辑,比如发送告警通知、将文件移动到非法文件目录、写入校验失败日志等
方案2:映射数据流校验(适合连带文件内容处理的场景)
如果你的流程本来就要用数据流处理文件内容,可以直接把文件名校验嵌入数据流流程:
- 数据流参数新增
fileName参数,管道调用数据流时将@triggerBody().fileName传入该参数 - 源配置完成后新增「派生列」活动,新增校验列:
列名:is_file_valid
列值:regexMatch($fileName, '^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[0-9]{6}_[0-9]+\.[Cc][Ss][Vv]$') - 新增「条件拆分」活动,按
is_file_valid的值拆分两路流:
- 符合条件的流:走后续正常的数据清洗、入库逻辑
- 不符合条件的流:输出到错误存储路径,或写入日志表留痕
规则调整说明
如果你的实际命名规则和默认示例有差异,直接修改正则对应部分即可:
- 公司/国家字段允许特殊字符:在第一、第二个
[]内加入允许的字符即可,比如允许横杠就改成[a-zA-Z0-9\-] - 时间戳格式特殊:调整
_[0-9]+部分的规则,比如时间戳是yyyyMMddHHmmss格式就改成_[0-9]{14} - 要求后缀必须是大写CSV:把正则末尾的
\.[Cc][Ss][Vv]改成\.CSV即可
内容的提问来源于stack exchange,提问作者Krishna Murthy
相关产品推荐
相关产品推荐

