使用 Java 管理容器属性和元数据
除 Blob 容器包含的数据外,它们还支持系统属性和用户定义的元数据。 本文介绍如何使用用于 Java 的 Azure 存储客户端库管理系统属性和用户定义元数据。
先决条件
- 本文假设已经设置了项目来使用适用于 Java 的 Azure Blob 存储客户端库。 要了解有关设置项目的信息,包括包安装、添加
import
指令和创建授权客户端对象,请参阅开始使用 Azure 存储和 Java。 - 授权机制必须具有使用容器属性或元数据的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南:
关于属性和元数据
系统属性:每个 Blob 存储资源上都存在系统属性。 其中一些属性是可以读取或设置的,而另一些属性是只读的。 部分系统属性在“幕后”是与某些标准 HTTP 标头对应的。 用于 Java 的 Azure 存储客户端库将维护这些属性。
用户定义的元数据:用户定义元数据包含一个或多个你为 Blob 存储资源指定的名称/值对对。 可以使用元数据存储资源的其他值。 元数据值仅用于你自己的目的,不会影响资源的行为方式。
元数据名称/值对是有效的 HTTP 标头,因此应当遵循所有控制 HTTP 标头的限制。 有关元数据命名要求的详细信息,请参阅元数据名称。
检索容器属性
若要检索容器属性,请使用以下方法:
以下代码示例提取容器的系统属性,并将属性值写入到控制台窗口:
public void getContainerProperties(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n",
properties.getBlobPublicAccess(),
properties.hasLegalHold(),
properties.hasImmutabilityPolicy());
}
设置和检索元数据
可将元数据指定为 Blob 或容器资源上的一个或多个名称/值对。 若要设置元数据,请使用以下方法:
设置容器元数据将覆盖与容器关联的所有现有元数据。 无法修改单个名称-值对。
以下代码示例设置容器上的元数据:
public void addContainerMetadata(BlobContainerClient blobContainerClient) {
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("docType", "text");
metadata.put("category", "reference");
try {
blobContainerClient.setMetadata(metadata);
System.out.printf("Set metadata completed %n");
} catch (UnsupportedOperationException error) {
System.out.printf("Failure while setting metadata %n");
}
}
若要检索元数据,请调用以下方法:
以下示例读取元数据值:
public void readContainerMetadata(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Container metadata: %n");
properties.getMetadata().entrySet().forEach(metadataItem -> {
System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
});
}
资源
若要详细了解如何使用适用于 Java 的 Azure Blob 存储客户端库设置和检索容器属性和元数据,请参阅以下资源。
REST API 操作
Azure SDK for Java 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 Java 范例与 REST API 操作进行交互。 用于设置和检索属性和元数据的客户端库方法使用以下 REST API 操作:
getProperties
方法通过调用获取 Blob 属性操作和获取 Blob 元数据操作来检索容器属性和元数据。