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

Azure Data Factory中获取存储元数据及Blob容器列表的方法

在Azure Data Factory中获取Blob文件夹元数据及容器列表的方案

一、获取Blob文件夹的Last Modified日期元数据

Azure Blob存储中的“文件夹”是虚拟层级,并非实际实体,没有独立的Last Modified属性,可通过以下方式获取对应层级的时间信息:

方法1:Get Metadata活动+前缀筛选

  1. 在ADF中创建Get Metadata活动,数据源关联Azure Blob存储链接服务
  2. 活动配置:
    • 选择目标容器
    • 字段列表勾选Child Items
    • 前缀填入目标文件夹路径(如folder1/subfolder/)
  3. 活动返回的Child Items包含该前缀下所有文件的元数据,可取其中最新的Last Modified值作为文件夹的“修改时间”;若文件夹下有占位文件(如$folder$),直接读取该文件的Last Modified属性即可。

方法2:Web活动调用Storage REST API

  1. 创建Web活动,请求URL设置为:
    https://<存储账户名>.blob.core.windows.net/<容器名>?restype=container&comp=list&prefix=<文件夹路径>&delimiter=/
    
  2. 配置身份验证(SAS令牌/托管标识均可),请求方法选GET
  3. 解析XML响应,提取目标路径下文件的元数据,取最新修改时间作为文件夹的修改时间。

权限要求

确保ADF链接服务使用的身份(托管标识/服务主体)拥有Storage Blob Data Reader或更高权限,否则无法读取元数据。

二、获取并保护所有Blob容器列表

获取容器列表

方法1:ADF Get Metadata活动

  1. 创建Get Metadata活动,数据源关联Azure Blob存储链接服务
  2. 数据集配置中不指定容器,直接选择存储账户级别
  3. 字段列表勾选Child Items,活动将返回存储账户下所有容器的列表及基础元数据(含Last Modified时间)。

方法2:Azure CLI/PowerShell(批量场景适用)

  • Azure CLI命令:
    az storage container list --account-name <存储账户名> --query "[].{name:name, lastModified:lastModified}" --output table
    
  • PowerShell命令:
    Get-AzStorageContainer -Context (Get-AzStorageAccount -ResourceGroupName <资源组名> -Name <存储账户名>).Context | Select-Object Name, LastModified
    

保护容器列表访问权限

  1. RBAC权限管控:
    • 仅给必要用户/服务主体分配Storage Account Reader或Storage Blob Data Reader角色,避免过度授权
    • 优先使用托管标识/服务主体,禁用存储账户密钥访问
  2. 网络安全配置:
    • 存储账户防火墙限制仅允许ADF的IP范围或虚拟网络访问
    • 启用私有链接,让ADF通过私有网络访问存储账户,规避公网暴露风险
  3. 容器资源锁定:
    • 对重要容器设置只读资源锁,防止误删除或修改容器配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:00:05