You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ADF验证SFTP中两个文件是否存在的异常问题排查

排查SFTP文件存在验证逻辑异常的问题

以下是几个关键排查方向,按优先级逐一验证:

1. 检查Get Metadata活动配置

  • 若验证单个文件,确认活动的目标路径是具体文件路径而非文件夹路径,且字段列表勾选了exists;若检查文件夹下的文件,需勾选childItems来获取子文件列表。
  • 若同时验证两个文件,建议为每个文件单独配置Get Metadata活动,避免单活动查文件夹后筛选逻辑出错。

2. 校验If Condition表达式正确性

  • 若用两个独立的Get Metadata活动(比如Check_XLSX和Check_PDF),正确表达式应为:
    @and(equals(activity('Check_XLSX').output.exists, true), equals(activity('Check_PDF').output.exists, true))
    
    注意不要写错活动名称或exists字段(比如误写为exist),可查看活动运行日志,确认exists返回值确实为true。
  • 若通过文件夹的childItems判断,需确保文件名完全匹配(含后缀),示例表达式:
    @and(contains(activity('Check_Folder').output.childItems, 'report.xlsx'), contains(activity('Check_Folder').output.childItems, 'report.pdf'))
    

3. 确认文件路径准确性

  • 检查SFTP路径是否存在拼写错误、多余斜杠(比如/sftp/data/和/sftp/data可能被服务器视为不同路径)。
  • 确认文件确实在目标文件夹下,Get Metadata默认不会递归查询子目录。

4. 排查文件名大小写问题

  • 基于Linux的SFTP服务器区分大小写,比如Report.XLSX和report.xlsx会被视为不同文件,核对实际文件名与表达式中的写法是否完全一致。

5. 验证SFTP权限与连接

  • 确认Data Factory使用的SFTP账号拥有目标文件夹的读取权限,权限不足可能导致exists返回错误值。
  • 查看活动运行日志,是否存在隐藏的权限报错(部分情况下报错不会终止流程,但会导致输出异常)。

6. 检查活动执行顺序与依赖

  • 确保Get Metadata活动在If Condition之前执行,且If Condition正确依赖了Get Metadata的输出。若依赖配置错误,可能会使用缓存值或空值进行判断。

内容的提问来源于stack exchange,提问作者kimchigirl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:19:53