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

Azure Data Factory中HTTP至Blob的文件复制问题咨询(含需求变更)

批量复制公共HTTP站点无规律文件名的CSV/XML文件到Blob存储

由于ADF的HTTP连接器本身不支持遍历未知文件名的文件列表,需结合外部工具获取文件清单后批量处理:

  • 编写Azure Function(Python/C#均可),爬取目标HTTP站点的页面HTML,解析出所有CSV/XML文件的完整URL和原文件名,返回JSON格式的文件列表(示例:[{"url":"http://example.com/random1.csv","filename":"random1.csv"},{"url":"http://example.com/random2.xml","filename":"random2.xml"}])。
  • 在ADF管道中添加Lookup活动,调用上述Azure Function获取文件列表。
  • 添加For Each活动,遍历Lookup返回的文件条目,在循环内部配置复制活动:
    • 源数据集:使用HTTP二进制数据集,动态设置URL为@item().url。
    • 目标数据集:使用Blob存储数据集,动态设置文件名属性为@item().filename,确保复制后保留原文件名。
按规则复制单个指定HTTP文件到Blob存储

针对文件名遵循somestring_昨日日期.xml且修改时间在当日凌晨1小时内的需求,可按以下步骤配置:

  1. 生成目标文件名:在ADF中用表达式构建符合规则的文件名:
    @concat('somestring_', formatDateTime(addDays(utcNow(), -1), 'yyyyMMdd'), '.xml')
    
  2. 定义时间验证范围:计算当日凌晨0点到1点的时间区间:
    • 起始时间:@startOfDay(utcNow())
    • 结束时间:@addHours(startOfDay(utcNow()), 1)
  3. 配置复制活动:
    • 源HTTP数据集:动态设置URL为@concat('http://目标站点域名/', 上述生成的文件名),在高级设置中开启文件修改时间验证,填入起始和结束时间。
    • 目标Blob数据集:直接使用生成的文件名作为目标文件名,保留原名称。
  4. 可选容错处理:添加If Condition活动,先通过Web活动调用HTTP HEAD请求检查文件是否存在且Last-Modified时间在指定区间内,满足条件再执行复制活动,避免管道因文件不存在或不符合时间条件报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:47:45