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

Azure Data Factory配置引发SftpPermissionDenied错误求助

问题分析与解决方案

核心原因

从错误信息里的文件名xxxxxxx_2023-05-31T00:00:00_.csv可以看出,Lookup活动返回的as_of_date包含冒号(:),绝大多数SFTP服务器(尤其是Unix/Linux环境下的)不允许文件名中存在冒号这类特殊字符,这才是触发SftpPermissionDenied错误的根本原因,并非文件覆盖导致。

解决方案

1. 格式化Lookup返回的日期字段

修改生成文件名的表达式,将Lookup返回的as_of_date转换为不含特殊字符的格式,示例如下:

@concat(
    pipeline().parameters.TableName,
    '_',
    formatDateTime(activity('Lookup1').output.firstRow.as_of_date, 'yyyyMMdd'),
    '_',
    formatDateTime(utcNow(),'yyyyMMddhhmmss'),
    '.csv'
)

如果需要保留日期的连字符样式,也可以采用yyyy-MM-dd格式,只要避免冒号即可:

@concat(
    pipeline().parameters.TableName,
    '_',
    formatDateTime(activity('Lookup1').output.firstRow.as_of_date, 'yyyy-MM-dd'),
    '_',
    formatDateTime(utcNow(),'yyyyMMddhhmmss'),
    '.csv'
)

2. 验证SFTP服务器的文件名规则

确认目标SFTP服务器允许的文件名字符集,常见禁止字符包括冒号(:)、斜杠(/)、反斜杠(\)、星号(*)等,确保生成的文件名完全符合规则。

3. 排除权限的其他可能

如果格式化日期后仍然报错,可执行以下排查步骤:

  • 确认ADF使用的SFTP账号对目标路径有写入和创建文件的权限
  • 检查目标路径下是否存在同名文件,且该文件被锁定或账号无修改权限
  • 手动创建包含目标格式文件名的文件,验证账号权限是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:12:10