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

使用SFTPToWasbOperator从SFTP复制文件到Azure Blob存储报错排查

问题定位

配置错误核心为blob_prefix参数传值不符合要求,额外存在容器名拼写不一致问题:

  • blob_prefix参数仅需传入Blob在目标容器内的相对路径前缀,不需要传入Blob的完整公网URL。你传入完整URL后,Operator会将该URL作为Blob名称进行编码拼接,最终生成畸形的请求地址,触发azure.core.exceptions.ServiceRequestError: URL has an invalid label报错。
  • 你代码中定义的容器名为testcotainer(拼写缺失字母n),和日志中出现的testcontainer名称不一致,也会加剧请求路径的生成异常。

报错日志验证

从运行日志可以看到生成的请求URL完全不符合Azure Blob的接口规范:
https://.blob.core.windows.net/***/test/https%3A//test.blob.core.windows.net/testcontainer/DataPoint_2022_07_04.csv
其中你传入的完整Blob URL被URL编码后直接拼接在了请求路径后半段,同时存储账户名位置为空,完全是参数传值错误导致的路径拼接异常。

修复方法
  1. 修正容器名拼写,保证代码中容器名和Azure侧实际创建的容器名完全一致
  2. 修改blob_prefix参数值:如果不需要给上传后的文件设置虚拟目录前缀,直接赋值为空字符串即可;如果需要指定上传后文件存放的目录,仅传入容器内的相对路径,不要带存储账户域名部分。

修正后的核心配置代码:

# 和Azure实际容器名保持一致,修正拼写
AZURE_CONTAINER_NAME = "testcontainer"
# 无路径前缀时赋值为空字符串即可,不要传完整URL
BLOB_PREFIX = ""
SFTP_SRC_PATH = "/SPi_test_Live/07-04-2022/"

说明:SFTPToWasbOperator会自动从配置好的Azure Wasb连接信息中读取存储账户名、密钥等认证信息,自动拼接合法的请求URL,不需要手动在参数中拼接域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:22