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

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

先决条件

关于 blob 索引标记

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

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

设置标记

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

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

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

此方法中的指定标记将替换现有标记。 如果必须保留旧值,则必须下载这些值并将其包含在对此方法的调用中。 以下示例介绍如何设置标记:

public void setBlobTags(BlobClient blobClient) {
    // Get any existing tags for the blob if they need to be preserved
    Map<String, String> tags = blobClient.getTags();

    // Add or modify tags
    tags.put("Sealed", "false");
    tags.put("Content", "image");
    tags.put("Date", "2022-01-01");

    // setTags will replace existing tags with the map entries we pass in
    blobClient.setTags(tags);
}

可以通过将空 Map 对象传递到 setTags 方法来删除所有标记:

public void clearBlobTags(BlobClient blobClient) {
    Map<String, String> tags = new HashMap<String, String>();
    blobClient.setTags(tags);
}

获取标记

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

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

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

以下示例演示如何检索和循环访问 Blob 的标记:

public void getBlobTags(BlobClient blobClient) {
    Map<String, String> tags = blobClient.getTags();

    System.out.println("Blob tags:");
    for (Map.Entry<String, String> entry : tags.entrySet())
        System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

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

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

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

注意

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

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

以下示例查找标记为图像的所有 Blob:

public void findBlobsByTag(BlobContainerClient blobContainerClient) {
    String query = "\"Content\"='image'";

    blobContainerClient.findBlobsByTags(query)
            .forEach(blob -> System.out.printf("Name: %s%n", blob.getName()));
}

资源

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

REST API 操作

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

代码示例

客户端库资源

请参阅