通过 .NET 使用 Blob 索引标记来管理和查找数据

本文介绍如何使用 Blob 索引标记通过适用于 .NET 的 Azure 存储客户端库来管理和查找数据。

先决条件

关于 blob 索引标记

Blob 索引标记使用键值标记属性对存储帐户中的数据进行分类。 这些标记会自动索引,并作为可搜索的多维索引公开,便于你轻松查找数据。 本文介绍了如何使用 blob 索引标记来设置、获取和查找数据。

启用了分层命名空间的存储帐户不支持 Blob 索引标记。 若要详细了解 Blob 索引标记功能以及已知问题和限制,请参阅通过 Blob 索引标记管理和查找 Azure Blob 数据

设置标记

如果代码通过以下一种机制授权访问 Blob 数据,则可以设置索引标记:

有关详细信息,请参阅设置 Blob 索引标记

你可以使用以下任一方法设置标记:

以下示例执行此任务。

public static async Task SetTags(BlobClient blobClient)
{
    Dictionary<string, string> tags = 
        new Dictionary<string, string>
    {
        { "Sealed", "false" },
        { "Content", "image" },
        { "Date", "2020-04-20" }
    };

    await blobClient.SetTagsAsync(tags);
}

可以通过将空 [Dictionary] 传递到 SetTagsSetTagsAsync 方法来删除所有标记,如下例所示。

Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
相关文章
通过 Blob 索引标记管理和查找 Azure Blob 数据
设置 Blob 标记 (REST API)

获取标记

如果代码通过以下一种机制授权访问 Blob 数据,则可以获取索引标记:

有关详细信息,请参阅获取和列出 Blob 索引标记

你可以使用以下任一方法获取标记:

以下示例执行此任务。

public static async Task GetTags(BlobClient blobClient)
{
    Response<GetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync();

    foreach (KeyValuePair<string, string> tag in tagsResponse.Value.Tags)
    {
        Console.WriteLine($"{tag.Key}={tag.Value}");
    }
}

通过 Blob 索引标记筛选和查找数据

如果代码通过以下一种机制授权访问 Blob 数据,则可以使用索引标记来查找和筛选数据:

有关详细信息,请参阅使用 Blob 索引标记查找数据

注意

不能使用索引标记来检索以前的版本。 以前版本的标记不会传递给 blob 索引引擎。 有关详细信息,请参阅条件和已知问题

你可以使用以下任一方法查找数据:

以下示例查找标记日期属于特定范围内的所有 Blob。

public static async Task FindBlobsbyTags(BlobServiceClient serviceClient)
{
    string query = @"""Date"" >= '2020-04-20' AND ""Date"" <= '2020-04-30'";

    // Find Blobs given a tags query
    Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine);

    List<TaggedBlobItem> blobs = new List<TaggedBlobItem>();
    await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query))
    {
        blobs.Add(taggedBlobItem);
    }

    foreach (var filteredBlob in blobs)
    {
        
        Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " +
            $"BlobName= {filteredBlob.BlobName}");
    }

}

资源

若要详细了解如何使用索引标记通过适用于 .NET 的 Azure Blob 存储客户端库管理和查找数据,请参阅以下资源。

REST API 操作

Azure SDK for .NET 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 .NET 范例与 REST API 操作进行交互。 用于管理和使用 Blob 索引标记的客户端库方法使用以下 REST API 操作:

客户端库资源

请参阅