如何通过Logic Apps自动创建Blob文件夹并同步FTP新增文件夹内容?
解决方案:用Logic Apps自动同步FTP新文件夹及文件到Blob存储
一、完整流程搭建步骤
我帮你梳理下具体的实现逻辑,分几步就能搞定:
设置FTP触发器
选择FTP连接器的「当文件夹被添加」触发器,配置你的FTP服务器连接信息,指定要监测的根目录(比如FTP的/根目录)。这样Logic Apps会自动监听FTP里新创建的文件夹。获取新文件夹下的所有文件
添加FTP的「获取文件夹中的文件」操作,将触发器返回的新文件夹路径作为目标路径,勾选「包含子文件夹」(如果需要处理嵌套文件夹的话),这样就能拿到该文件夹下所有新增的文件。循环处理每个文件
添加「For each」循环组件,把上一步获取到的文件列表作为循环输入。在循环内部:- 用FTP的「获取文件内容」操作,读取当前循环文件的内容;
- 用Azure Blob存储的「创建Blob」操作,配置你的存储账户和容器。重点在这里:要创建对应的Blob虚拟文件夹,只需要在「Blob名称」里填写
{FTP文件夹名称}/{文件名}(比如FTP里的new-folder/report.pdf,就填new-folder/report.pdf)。Blob存储会自动识别路径分隔符/,在Storage Explorer里显示为文件夹结构。
(可选)删除FTP源文件
如果需要同步后清理FTP的文件,在循环里再加一个FTP的「删除文件」操作,传入当前文件的路径即可。
二、关于Logic Apps创建Blob“文件夹”的说明
首先明确:Azure Blob存储是扁平存储结构,没有实际的物理文件夹,所谓的“文件夹”是通过Blob名称中的/分隔符模拟出来的虚拟结构。
用Logic Apps创建虚拟文件夹有两种方式:
- 方式1:直接上传带路径的文件
就像上面步骤里说的,上传文件时指定包含路径的Blob名称(比如data/2024/05/file.csv),Blob存储会自动在界面上显示data→2024→05的文件夹层级,不需要提前创建“空文件夹”。 - 方式2:创建空的文件夹占位符
如果你需要先创建一个空文件夹(比如没有文件也要显示这个文件夹),可以用Blob存储的「创建Blob」操作,把「Blob名称」设为目标文件夹名称/(注意末尾要加/),然后「Blob内容」留空或者填个空字符串。这样Storage Explorer里就会显示这个空文件夹了。
额外提示
- 如果你需要监测FTP文件夹里的新增文件(包括后续添加到已有文件夹的文件),可以把触发器换成FTP的「当文件被添加或修改」,勾选「包含子文件夹」,然后在操作里解析文件的完整路径,自动对应到Blob的路径上。
- 记得在触发器里设置合适的轮询间隔,比如5分钟一次,避免频繁请求FTP服务器。
内容的提问来源于stack exchange,提问作者Andrew Buikema
相关产品推荐
相关产品推荐

