You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Logic Apps将SharePoint文件复制到Azure Blob并保留文件夹结构

用Logic Apps将SharePoint嵌套文件夹文件复制到Azure Blob并保留结构

业务场景说明

SharePoint文档库的Document文件夹下包含两个父文件夹,多层嵌套结构如下:

  • Result文件夹:Result → Result1 → Result2 → test.xlsx
  • Test文件夹:Test → Folder1 → Folder2 → Folder3 → file1.xlsx、file2.xlsx、file3.xlsx

需要通过Logic Apps将这些文件复制到Azure Blob存储,并完整保留原有的文件夹层级结构。

核心实现逻辑

要保留嵌套结构,关键是精准提取文件在SharePoint中的相对路径,并将该路径直接映射为Azure Blob的存储路径。

详细流程配置

1. 设置触发器

选择「当文件被创建或修改(属性仅)」作为流程触发器,配置指向SharePoint的Document根文件夹,开启递归扫描所有子文件夹选项,确保能捕获多层嵌套的文件。

2. 获取文件内容

添加「获取文件内容」动作,引用触发器返回的文件标识符参数,获取文件的二进制内容。

3. 提取相对路径

添加「组合」动作,使用以下表达式计算文件相对于Document根文件夹的完整路径:

replace(triggerBody()?['{Path}'], '/Shared Documents/', '')

(注:/Shared Documents/为SharePoint文档库默认根路径,若你的库名称不同,需对应修改)
该表达式会输出类似Result/Result1/Result2/test.xlsx的完整相对路径,包含所有嵌套层级。

4. 写入Azure Blob

添加「创建Blob」动作,配置目标Azure存储账户和容器:

  • Blob名称:直接引用步骤3中组合得到的相对路径
  • Blob内容:引用步骤2获取的文件内容

这样文件就会自动按照原有的嵌套结构存储到Blob容器中。

5. 空文件夹同步(可选)

若需要同步空文件夹结构,可在步骤3后添加「创建文件夹」动作,使用以下表达式提取文件所在的文件夹路径:

join(split(triggerBody()?['{Path}'], '/')[0..sub(length(split(triggerBody()?['{Path}'], '/')),2)], '/')

将该路径作为Blob存储的文件夹路径,确保空文件夹也能被创建。

现有流程调整建议

从你提供的流程截图来看,问题大概率出在未正确提取完整嵌套路径,导致文件无法按原层级存储。按照上述路径提取表达式重新配置Blob名称参数,即可解决结构丢失的问题。

内容的提问来源于stack exchange,提问作者Hemant Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:18:21