首页 > 解决方案 > 无法从 BlobItem 检索元数据

问题描述

从 Azure 存储中获取 Blob 时,我正在努力从 BlobItem 中获取元数据。

我肯定错过了一些东西,但无法弄清楚是什么或在哪里

这是我从测试容器中获取 BlobItems 的简单代码块。

一切都很好,var properties因为我确实成功获取了元数据,但是问题在于当我尝试在 while 循环中获取 blob 项的数据时,它返回 null

        var containerClient =  _blobServiceClient.GetBlobContainerClient(AzureStorageHelpers.BlobContainers.Files);
        var properties = await containerClient.GetPropertiesAsync();

        var blobs = containerClient.GetBlobsAsync();
        var enumerator = blobs.GetAsyncEnumerator();

        var blobList = new List<BlobItem>();
        try
        {
            while (await enumerator.MoveNextAsync())
            {
                var blobItem = enumerator.Current;
                var metaData = enumerator.Current.Metadata;
                var dwaw = blobItem.Metadata["Name"];
                blobList.Add(blobItem);
            }
        }
        finally
        {
            await enumerator.DisposeAsync();
        }

我得到空值,在 Azure 上我可以清楚地看到我已经定义了一些测试元数据属性。

在此处输入图像描述

我正在使用NET.Core 2.2和 N uget Azure.Storage.Blobs(12.5.1)

标签: c#azureasp.net-coreazure-blob-storage

解决方案


尝试在获取 Blob 时传递参数:

var blobs = containerClient.GetBlobsAsync(BlobTraits.Metadata);

参考这个链接


推荐阅读