如何通过Logic Apps遍历SharePoint多文档库并复制文件至Azure Blob
核心实现步骤(基于Power Automate)
1. 获取站点内所有文档库
使用Send an HTTP request to SharePoint操作,调用SharePoint REST API筛选出所有文档库:
- HTTP方法:GET
- URI:
_api/web/lists?$filter=BaseTemplate eq 101注:文档库的BaseTemplate固定值为101,此过滤条件可排除站点内其他类型的列表
2. 遍历文档库集合
添加Apply to each循环,将上一步API返回的value字段作为循环输入,逐个处理每个文档库。
3. 循环内获取文档库文件
把你原有的Get files (Properties only)操作移入循环内:
- 配置Site Address为目标SharePoint站点
- 配置Library Name为当前循环项的
Title或Name属性 - 开启Include nested items选项,确保获取所有子文件夹及嵌套文件
4. 保留文件夹结构复制到Azure Blob
在Get files操作后添加第二个Apply to each循环,遍历每个文件:
- 使用
Create blob操作,配置目标Azure存储账户和容器 - Blob name字段拼接文件相对路径:将文件的
Path属性去掉开头的文档库名称部分(例如用replace函数处理),保证Blob的层级结构与SharePoint原文件夹一致 - Blob content选择文件的
Content属性(若Get files未返回内容,需额外添加Get file content操作获取)
替代方案
针对大规模文件迁移场景,可选择以下更高效的方案:
- PnP PowerShell脚本:通过脚本批量枚举文档库、遍历文件及文件夹,调用Azure存储SDK完成上传,适合定时自动化执行或超大规模迁移
- Azure Data Factory:使用SharePoint Online连接器和Azure Blob连接器搭建数据管道,支持批量迁移、增量同步及迁移监控
内容的提问来源于stack exchange,提问作者Hemant Kumar
相关产品推荐
相关产品推荐

