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

.NET v12 SDK 如何获取Azure存储容器中携带Metadata的Blob列表

解决方案

在Azure Storage .NET v12 SDK中,GetBlobs方法默认不会加载Blob的元数据,只需在调用时指定BlobTraits参数为Metadata,即可在批量拉取Blob列表时自动填充每个Blob的元数据字段,无需单独对每个Blob发起元数据查询请求。

修改后可直接运行的代码

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

{
    string BlobPrefix = "prefix";
    BlobContainerClient containerClient = new BlobContainerClient("connectionstring", "docrepo");
    // 关键配置:指定BlobTraits同时拉取元数据和基础属性
    var blobList = containerClient.GetBlobs(prefix: BlobPrefix, traits: BlobTraits.Metadata | BlobTraits.Properties);

    foreach (var blob in blobList)
    {
        Console.WriteLine(blob.Name);
        Console.WriteLine(blob.Properties.CreatedOn.Value.UtcDateTime);
        // 建议先判断Key是否存在,避免抛出异常
        if (blob.Metadata.TryGetValue("KeyName", out string metadataValue))
        {
            Console.WriteLine(metadataValue);
        }
    }
}

补充说明

  • BlobTraits是枚举标志类型,支持多值组合,除了Metadata外,Properties用于指定拉取Blob的系统属性(如创建时间、大小等),默认就会包含,显式声明可避免参数配置变更导致属性丢失。
  • 如果仅需要查询单个Blob的元数据,也可以通过BlobClient单独查询:
    BlobClient blobClient = containerClient.GetBlobClient("your-blob-name");
    BlobProperties properties = blobClient.GetProperties();
    var metadata = properties.Metadata;
    
  • 访问元数据时优先使用TryGetValue方法读取,避免元数据中无对应Key时抛出KeyNotFoundException。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:36:03