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

如何通过ADF将多文件夹打包为单个Zip文件并按时触发执行

ADF批量SFTP文件压缩超时解决方案:生成触发时间命名的单Zip包

核心问题拆解

直接用复制活动的ZipDeflate处理大量文件时,边复制边压缩的串行逻辑容易触发20分钟超时,且原生功能无法直接合并多文件夹生成指定命名的Zip包,需拆分流程优化。

分步实现方案

1. 批量复制文件到Blob临时存储

  • 新建复制活动,源为SFTP服务器,路径选择包含Folder1和Folder2的父目录,勾选递归保留原目录结构
  • 目标设为Blob存储的临时容器(如temp-sftp-staging),启用并行复制,根据SFTP服务器带宽设置并行度(建议8-16),利用ADF并行传输能力快速完成文件复制

2. 自定义压缩生成触发时间命名的Zip包

放弃原生ZipDeflate,用Azure Function或ADF自定义活动实现压缩逻辑:

  • 传入触发时间参数:通过动态表达式@formatDateTime(trigger().scheduledTime, 'yyyyMMddHHmm')获取触发时间,作为Zip文件名(如backup_202405201420.zip)
  • 压缩逻辑:从临时容器中读取Folder1和Folder2的所有文件,保留原目录结构压缩到目标Zip包,完成后将Zip包移动到最终Blob容器(如sftp-backups)
  • 清理临时文件:压缩完成后删除临时容器中的未压缩文件,避免占用存储空间

3. 配置20分钟周期触发

创建ADF时间触发,设置 recurrence 为每20分钟,将触发时间参数传递给压缩步骤,确保每个周期生成唯一命名的Zip包

性能优化建议

  • SFTP连接:启用二进制传输模式(匹配源服务器类型),减少传输过程中的编码开销
  • Blob存储:使用ADLS Gen2存储账户,利用其高吞吐量特性提升文件读写速度
  • 错误处理:为复制和压缩步骤添加重试策略(3次重试,间隔5分钟),并设置临时文件清理失败的警报规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:07:08