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
相关产品推荐
相关产品推荐

