Logic App:如何同步SharePoint历史文件至Azure Blob Storage?
当然可以同步工作流创建前已存在的历史文件,下面提供两种实用方案:
方案一:创建一次性触发的初始同步工作流
这个方案适合快速完成历史文件的批量同步,之后继续用原有工作流处理新增/更新文件:
- 触发方式选择
Manually trigger a flow(手动触发)或者Recurrence(设置仅运行一次) - 添加
Get files (properties only)动作,配置目标SharePoint文档库,若文件数量较多,记得设置合理的Top count(比如100),后续通过分页处理剩余文件 - 添加
Apply to each循环,选择Get files返回的文件集合 - 循环内复用你原有工作流的逻辑:
Initialize variable调整文件路径等参数Get file content获取文件内容Upload blob to storage container上传到Blob存储
- 可选优化:添加条件判断,通过
List blobs或Get blob content using path检查目标Blob容器中是否已存在该文件,避免重复上传
方案二:在原有工作流中整合历史同步逻辑
如果不想单独创建工作流,可以给现有流程添加初始同步分支:
- 在原有触发动作
When a file is created or modified (properties only)之后,添加一个条件判断:比如用一个SharePoint列表项或环境变量标记是否已完成初始同步 - 若未完成初始同步,执行:
Get files (properties only)获取所有历史文件- 循环遍历并执行上传逻辑(同方案一)
- 完成后更新标记状态,后续工作流仅处理新增/修改的文件
注意事项
- 大文件处理:若文件超过100MB,需在
Get file content或Upload blob动作中启用分块上传(Chunking)的高级选项 - 性能优化:文件数量较多时,建议分批处理,利用
Skip token实现分页查询,避免单次请求超时 - 重复上传规避:可通过对比文件的
Last Modified时间、文件大小或哈希值,与Blob存储中的文件属性做匹配,只同步差异文件
内容的提问来源于stack exchange,提问作者gio.s
相关产品推荐
相关产品推荐

