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

Azure Functions Java:如何在Blob Trigger中读取Blob标签与元数据?

在Azure Functions Blob Trigger中读取Blob标签与元数据

你可以通过在Blob Trigger函数中绑定Blob客户端实例的方式,直接读取目标Blob的元数据和标签,无需额外手动初始化客户端。以下是具体实现方式:

使用最新Azure.Storage.Blobs SDK的示例

如果你的项目引用的是Azure.Storage.Blobs包(推荐的新SDK),可以在函数参数中添加BlobClient类型的参数,通过它来获取元数据和标签:

public static void Run(
    [BlobTrigger("your-container-name/{blob-name}", Connection = "AzureWebJobsStorage")] Stream blobContent,
    string blobName,
    BlobClient blobClient,
    ILogger log)
{
    // 读取元数据:需先调用GetProperties加载属性
    blobClient.GetProperties();
    foreach (var metadataItem in blobClient.Properties.Metadata)
    {
        log.LogInformation($"元数据 [{metadataItem.Key}]: {metadataItem.Value}");
    }

    // 读取Blob标签:调用GetTags方法获取标签集合
    var tagsResult = blobClient.GetTags();
    foreach (var tagItem in tagsResult.Value.Tags)
    {
        log.LogInformation($"标签 [{tagItem.Key}]: {tagItem.Value}");
    }
}

使用旧版Microsoft.Azure.Storage.Blob SDK的示例

如果项目仍在使用旧版存储SDK,可绑定CloudBlob类型参数来实现:

public static void Run(
    [BlobTrigger("your-container-name/{blob-name}", Connection = "AzureWebJobsStorage")] Stream blobContent,
    string blobName,
    CloudBlob cloudBlob,
    ILogger log)
{
    // 读取元数据:先调用FetchAttributes加载属性
    cloudBlob.FetchAttributes();
    foreach (var metadataItem in cloudBlob.Metadata)
    {
        log.LogInformation($"元数据 [{metadataItem.Key}]: {metadataItem.Value}");
    }

    // 读取Blob标签:调用GetTagsAsync获取标签
    var tags = cloudBlob.GetTagsAsync().Result;
    foreach (var tagItem in tags)
    {
        log.LogInformation($"标签 [{tagItem.Key}]: {tagItem.Value}");
    }
}

关键注意事项

  • 元数据不会自动加载,必须调用GetProperties()(新SDK)或FetchAttributes()(旧SDK)触发属性获取操作。
  • Blob标签是独立于元数据的存储特性,需要通过专门的GetTags()/GetTagsAsync()方法读取,这会发起一次额外的存储API请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:00:03