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

如何通过Azure Data Factory将Blob存储文件按大小分三类文件夹复制

实现Azure Blob存储文件按大小分类复制(Azure Data Factory)

前置准备

确保你已拥有:

  • Azure Data Factory实例
  • 源Blob存储容器(存放待分类文件)
  • 目标Blob存储容器(用于存放分类后的文件)

步骤1:创建源和目标数据集

  • 源数据集:
    新建Azure Blob存储数据集,指向你的输入容器,数据集类型选择“文件系统”。若需遍历子文件夹,在“连接”设置中勾选“递归”。
  • 目标数据集:
    同样新建Azure Blob存储数据集,指向输出容器,数据集类型选择“文件系统”。后续将通过动态内容指定文件的目标路径。

步骤2:添加Get Metadata活动获取文件属性

在管道中添加一个Get Metadata活动(命名为GetSourceFiles):

  • 选择步骤1创建的源数据集作为数据源
  • 在“字段列表”中勾选Child Items和Size,这样活动会返回容器内所有文件的名称、路径及大小(字节单位)

步骤3:添加For Each遍历所有文件

添加For Each活动,配置如下:

  • 输入:设置为@activity('GetSourceFiles').output.childItems,即遍历Get Metadata返回的所有文件
  • 若需确保文件顺序处理,勾选“Sequential”;默认并行处理可提升效率

步骤4:在循环内添加条件判断与复制逻辑

在For Each活动内部添加If Condition活动,通过三个分支判断文件大小并执行对应复制:

分支1:文件小于1KB(<1024字节)

  • 条件表达式:@less(item().size, 1024)
  • 条件为真时,添加Copy活动:
    • 源:选择源数据集,文件路径设置为@item().name(若源文件带子路径,使用@item().path)
    • 目标:选择目标数据集,文件路径设置为1KB/@item().name(ADF会自动创建不存在的文件夹)

分支2:文件大小在1KB-2KB之间(≥1024字节且<2048字节)

  • 条件表达式:@and(greaterOrEquals(item().size, 1024), less(item().size, 2048))
  • 条件为真时,添加Copy活动:
    • 源配置同分支1
    • 目标路径设置为2KB/@item().name

分支3:文件大于等于2KB(≥2048字节)

  • 直接使用Else分支,添加Copy活动:
    • 源配置同分支1
    • 目标路径设置为2KB_More/@item().name

测试与验证

运行管道后,前往目标Blob容器查看:

  • 1KB文件夹下应为所有小于1KB的文件
  • 2KB文件夹下应为1KB-2KB之间的文件
  • 2KB_More文件夹下应为大于等于2KB的文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:55:18