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

ADF Copy Data任务FTP无法获取文件长度错误的原因及解决方法咨询

报错信息:ErrorCode=FtpFailedToGetFileLength,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=FTP failed to get file length 'file_01/', file 'Filename_20201113_DATE_20211102_CODE01.DAT' Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (550) File unavailable (e.g., file not found, no access).,Source=System,'

错误根因分析
  • 路径拼接错误:ADF内路径拼接逻辑异常,比如ForEach循环中拼接目录file_01/和文件名时生成了非法路径(如出现双斜杠、相对路径和FTP数据集根目录配置冲突),导致FTP服务器无法定位到目标文件。
  • FTP账号权限不足:ADF使用的FTP账号对file_01目录或目标DAT文件没有读取权限,FTP服务端直接返回550拒绝访问错误。
  • 文件不存在或状态异常:触发管道时目标文件尚未完成上传、已被其他进程删除/移动,或文件名大小写与FTP服务端实际存储的文件名不匹配(部分FTP服务对大小写敏感)。
  • FTP服务端兼容性问题:老旧FTP服务端禁用了SIZE命令,ADF拉取文件前默认调用SIZE命令获取文件长度,无法调用时就会抛出该报错。
修复方案
  • 修正路径拼接逻辑:
    先用FTP客户端工具(如FileZilla)使用和ADF完全相同的账号登录,确认目标文件的完整绝对路径,再核对ADF中FTP数据集的根目录配置、Filter活动输出的路径参数、ForEach循环内的路径拼接表达式。如果表达式存在多余斜杠,可使用@replace(concat(item().folderPath, '/', item().fileName), '//', '/')处理生成标准化路径。
  • 开通FTP账号权限:
    用ADF配置的FTP账号手动尝试下载目标文件,确认权限是否正常。如果无法下载,联系FTP服务端管理员为该账号开通file_01目录的读权限、目标文件的访问权限。
  • 校验文件状态与文件名匹配规则:
    在管道GetMetadata活动后增加判断逻辑,先确认文件存在、且文件最后修改时间距当前时间超过预设的上传等待时长(如3分钟),再进入后续处理流程;同时核对文件名过滤规则的大小写和FTP服务端实际文件名完全一致,适配大小写敏感的FTP服务。
  • 兼容不支持SIZE命令的FTP服务:
    若以上检查均无问题,进入ADF FTP源数据集的高级设置页面,勾选禁用SIZE命令选项,ADF会改用其他方式获取文件属性,适配老旧FTP服务端的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:15:01