Logic App用SFTP In-App连接器上传成功后Blob不存在,疑因文件名前缀异常
解决Logic App SFTP传Blob后"Blob does not exist"的问题
核心问题定位
你怀疑的Blob名称开头的反斜杠确实是主要原因:Azure Blob存储的命名规则明确禁止Blob名称以斜杠(/或\)开头,开头的反斜杠会导致门户解析Blob路径时出现错误,从而显示"Blob does not exist"。另外,仅传递文件名的操作也需要配合内容绑定和路径修正才能正常工作。
具体配置调整步骤
修正Blob名称,移除开头反斜杠
在SFTP In-App连接器的「Upload file content」动作中,不要直接使用原始文件名,添加字符串处理逻辑去掉开头的反斜杠:- 如果原始文件名变量是
@{triggerBody()?['{Name}']},替换为:@{if(startsWith(triggerBody()?['{Name}'], '\'), substring(triggerBody()?['{Name}'], 1), triggerBody()?['{Name}'])}
这个逻辑会仅移除开头的反斜杠,保留文件名中间可能存在的合法字符(如果有的话)。
- 如果原始文件名变量是
配置正确的SFTP上传路径
在「Upload file content」的「Path」字段中:- 如果要上传到Blob容器根目录,直接填写上面处理后的文件名即可,不要加开头的斜杠/反斜杠;
- 如果需要上传到容器内的子文件夹,格式为
子文件夹名/@{处理后的文件名},同样不要加开头的斜杠。
确保文件内容正确传递
在「Upload file content」的「File content」字段中,必须绑定SharePoint文件的内容变量,比如:@{triggerBody()?['{Content}']}仅传递文件名会导致上传的Blob没有实际内容,也可能引发异常。
验证调整效果
修改配置后,重新触发Logic App(上传新文件到SharePoint),然后查看Blob容器:
- 确认Blob名称不再以反斜杠开头;
- 点击Blob验证是否能正常打开或查看内容。
内容的提问来源于stack exchange,提问作者BlakeB9
相关产品推荐
相关产品推荐

