如何使用Logic App将SFTP多文件夹下的文件传输到SharePoint文档库
前置准备
- 可正常访问目标SFTP服务器的账号凭证(密码/SSH密钥均可)
- 具备目标SharePoint站点文档库读写权限的Azure AD账号
- 已创建好的Logic App资源(消费型、标准型均可,按需选择即可)
实现步骤
步骤1:配置SFTP触发器
选择SFTP内置触发器当文件添加或修改时(仅属性),完成以下配置:
- 配置SFTP服务器连接信息,触发器轮询根路径填写需要同步的最上层目录,比如示例中的
/new - 轮询频率按需设置,日更场景可设为每日轮询,也可调整为小时级轮询提高同步时效性
- 开启拆分设置,确保每个新增文件单独触发后续流程,避免批量文件触发异常
步骤2:提取文件相对路径
从触发器返回的文件属性中提取同步所需的相对路径:
- 若触发器根路径已配置为
/new,触发器返回的Full Path字段值即为/folder1/id1.csv这类相对路径,可直接使用 - 若触发器根路径配置为SFTP根目录,可通过表达式
replace(triggerBody()?['FullPath'], '/new/', '')去掉前缀,得到目标相对路径
步骤3:获取SFTP文件内容
添加SFTP操作获取文件内容,传入触发器返回的文件标识符参数,拉取对应文件的二进制内容。
步骤4:上传文件到SharePoint并保留目录结构
添加SharePoint Online操作创建文件,完成以下配置:
- 站点地址选择目标SharePoint站点
- 文件夹路径填写规则为
目标文档库根路径 + 上一步提取的相对路径,比如目标文档库名为SFTP同步归档,则路径填/共享文档/SFTP同步归档@{triggerBody()?['FullPath']} - 文件名传入触发器返回的
文件名参数 - 文件内容传入上一步获取到的SFTP文件二进制内容
该操作会自动识别路径中的层级,对应文件夹不存在时会自动递归创建,无需额外编写文件夹判断、创建逻辑
可选优化配置
- 需避免重复同步的场景,可在上传前添加SharePoint
获取文件属性操作,判断同路径下是否存在同名文件,根据需求选择跳过或覆盖 - 需清理源文件的场景,可在上传成功后添加SFTP
删除文件操作,传入触发器返回的文件标识符即可删除源文件 - 大文件传输场景可开启分块上传配置,避免请求超时
内容的提问来源于stack exchange,提问作者Parker
相关产品推荐
相关产品推荐

