如何通过Logic Apps实现SharePoint文件夹变更后同步至Blob存储?
针对你需求的Folder_1子文件夹变更触发同步场景,具体配置步骤如下:
1. 配置触发条件
- 选择SharePoint连接器的当文件夹或文件被修改时触发器,指定目标SharePoint站点地址,文件夹路径设为
Folder_1。 - 开启触发器的监视子文件夹选项为「是」,确保能捕获F1、F2、F3这类子文件夹的变更事件。
- 可选:添加筛选条件,仅当
Item type等于Folder时触发,避免文件变更触发不必要的同步。
2. 获取Folder_1下的所有子文件夹
- 添加SharePoint连接器的获取文件夹动作,站点地址与触发器保持一致,父文件夹路径指定为
Folder_1。 - 若仅需同步一级子文件夹(如你的F1/F2/F3),无需勾选「包括子文件夹」;若后续有嵌套子文件夹同步需求,可开启该选项。
3. 遍历子文件夹并同步到Blob存储
- 添加For each循环控件,循环对象选择上一步「获取文件夹」返回的文件夹列表。
- 在循环内部:
- 添加SharePoint的获取文件动作,站点地址不变,文件夹路径选择当前循环项的
Identifier(表达式:@{items('For_each')?['Identifier']}),按需开启「包括子文件夹」以同步子文件夹内的文件。 - 添加Azure Blob存储的创建Blob动作,选择目标存储账户和容器:
- Blob路径:设置为
@{items('For_each')?['Name']}/@{items('Get_files')?['Name']},这样会在Blob容器内创建与SharePoint子文件夹同名的目录结构,保持层级一致。 - Blob内容:选择「获取文件」返回的
Content(表达式:@{items('Get_files')?['Content']})。
- Blob路径:设置为
- 添加SharePoint的获取文件动作,站点地址不变,文件夹路径选择当前循环项的
关键注意事项
- 确保Logic App使用的身份(如系统分配托管标识或服务主体)对目标SharePoint站点有读取权限,对Blob存储容器有写入权限。
- 若要同步空文件夹,需额外处理:因为默认「获取文件」不会返回空文件夹,可在循环内判断文件夹是否为空,若为空则通过创建Blob动作创建一个空的占位文件(如
.keep)来保留文件夹结构。
内容的提问来源于stack exchange,提问作者2OG
相关产品推荐
相关产品推荐

