Azure Logic App FTP连接器缺失重命名操作的自定义代码解决办法
Azure Logic Apps FTP 文件传输:解决服务器抢占文件的问题
我来分享下我们团队在将C#控制台应用迁移到Azure解决方案时,遇到FTP文件传输问题的解决思路和可行方案:
迁移背景与核心需求
我们的迁移目标是把现有C#控制台应用改成Azure云原生解决方案,核心需求有三个:
- 将原本需要FTP传输给客户端的文件存储为Azure Blob
- 把文件名等关键信息以JSON格式插入Azure Service Bus Topic
- 通过Logic App订阅该Topic,完成最终的FTP文件传输
遇到的问题
客户端的FTP服务器无法修改配置,会立即处理符合特定命名规则的上传文件。之前在标准.NET代码里,我们靠「先创建带temp_前缀的临时文件,再重命名」的方式,完美避开了服务器抢占文件的问题,但迁移到Azure Logic App时却卡壳了:
使用FTP连接器的「Create File」操作直接创建目标命名的文件时,FTP服务器会在Azure完成文件上传前就抢占文件,导致传输失败;而且目前FTP连接器没有内置的重命名功能。
官方确认的可行方案
我们咨询了微软技术支持(2018年5月24日的回复),确认开箱即用的FTP连接器没法直接实现我们的需求,目前可行的workaround是两步走:
- 先用FTP连接器创建带临时命名的文件(比如保留之前的
temp_前缀) - 再调用自定义的Azure Function,让它登录FTP服务器完成重命名操作
我们团队已经计划尝试这个方案,同时也在探索其他可能的替代方案。
额外建议
如果大家觉得给FTP/SFTP连接器添加重命名功能能解决更多类似场景的问题,可以去Azure反馈论坛给相关建议投票支持。
内容的提问来源于stack exchange,提问作者Joe Ruder
相关产品推荐
相关产品推荐

