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

如何使用Logic App将SFTP多子目录文件按原结构迁移到SharePoint文档库

Azure Logic App 同步SFTP嵌套目录到SharePoint文档库实操方案

核心逻辑为提取SFTP文件的相对路径,在SharePoint端动态创建缺失目录后上传文件,无需硬编码适配任意层级的嵌套目录结构。

前置配置

首先确保SFTP侧的触发/查询动作开启包含嵌套项开关:

  • 若使用事件触发,选择「当SFTP文件添加或修改时(仅属性)」触发,勾选包含嵌套子目录选项
  • 若使用全量同步,选择「列出SFTP指定路径下所有文件」动作,开启递归查询选项

步骤1:裁剪获取文件相对路径

从SFTP返回的文件完整路径中,裁剪掉根同步目录的前缀,得到文件的相对路径。
假设你需要同步的SFTP根目录为folder/new/demo/,示例表达式如下:
substring(triggerBody()?['FullPath'], add(indexOf(triggerBody()?['FullPath'], 'folder/new/demo/'), 16))

注:表达式中的16为根目录字符串folder/new/demo/的字符长度,你可以根据自己的实际根目录长度调整。
执行后将得到test/sample.csv、test1/sample3.csv、test/practice/sample5.csv这类相对路径。

步骤2:拆分提取子目录路径

将相对路径按/拆分后去掉末尾的文件名,得到需要在SharePoint侧创建的子目录路径,示例表达式如下:
join(take(split(variables('相对路径'), '/'), sub(length(split(variables('相对路径'), '/')), 1)), '/')
比如相对路径为test/practice/sample5.csv时,该步骤输出结果为test/practice。

步骤3:动态创建SharePoint目录

调用SharePoint「创建新文件夹」动作:

  • 站点地址选择你的目标SharePoint站点
  • 库名称选择目标文档库
  • 文件夹路径填入步骤2输出的子目录路径
    该动作会自动判断目录是否存在,已存在的路径不会重复创建也不会报错。

步骤4:上传文件到对应目录

调用SharePoint「创建文件」动作:

  • 文件夹路径填入步骤3输出的完整文件夹路径
  • 文件名填入表达式last(split(variables('相对路径'), '/'))自动提取文件名
  • 文件内容选择SFTP动作输出的二进制文件内容即可

常见问题排查

  • 目录层级重复:检查步骤1的根目录裁剪起始位置是否正确
  • 中文路径乱码:确认SFTP连接配置的编码设置为UTF-8
  • 嵌套文件漏同步:确认SFTP动作已开启「包含嵌套项」配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:06:05