使用 JavaScript 或 TypeScript 管理容器属性和元数据
除 Blob 容器包含的数据外,它们还支持系统属性和用户定义的元数据。 本文介绍如何使用用于 JavaScript 的 Azure 存储客户端库管理系统属性和用户定义元数据。
先决条件
- 本文中的示例假设你已经设置了一个项目来使用适用于 JavaScript 的 Azure Blob 存储客户端库。 若要了解如何设置项目(包括安装包、导入模块,以及创建授权客户端对象来使用数据资源),请参阅开始使用 Azure Blob 存储和 JavaScript。
- 授权机制必须具有使用容器属性或元数据的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南:
关于属性和元数据
系统属性:系统属性存在于每个 Blob 存储资源上。 其中一些属性是可以读取或设置的,而另一些属性是只读的。 事实上,有些系统属性与某些标准 HTTP 标头对应。 用于 JavaScript 的 Azure 存储客户端库将维护这些属性。
用户定义的元数据:用户定义元数据包含一个或多个你为 Blob 存储资源指定的名称/值对对。 可以使用元数据存储资源的其他值。 元数据值仅用于你自己的目的,不会影响资源的行为方式。
元数据名称/值对是有效的 HTTP 标头,因此应当遵循所有控制 HTTP 标头的限制。 有关元数据命名要求的详细信息,请参阅元数据名称。
检索容器属性
若要检索容器属性,请使用以下方法:
以下代码示例提取容器的属性并将一些属性值写入到控制台窗口:
async function getContainerProperties(containerClient) {
try {
const containerProperties = await containerClient.getProperties();
console.log(`Public access type: ${containerProperties.blobPublicAccess}`);
console.log(`Lease status: ${containerProperties.leaseStatus}`);
console.log(`Lease state: ${containerProperties.leaseState}`);
console.log(`Has immutability policy: ${containerProperties.hasImmutabilityPolicy}`);
} catch (err) {
// Handle the error
}
}
设置和检索元数据
可以为容器资源指定元数据作为一个或多个名称/值对。 若要设置元数据,请创建 ContainerClient 对象,然后使用以下方法:
以下代码示例设置容器上的元数据:
async function setContainerMetadata(containerClient) {
const metadata = {
docType: "textDocuments",
docCategory: "testing",
};
await containerClient.setMetadata(metadata);
}
若要检索元数据,请获取容器属性,然后使用返回的元数据属性。
资源
若要详细了解如何使用适用于 JavaScript 的 Azure Blob 存储客户端库来设置和检索容器属性与元数据,请参阅以下资源。
代码示例
- 查看本文中的 JavaScript 和 TypeScript 代码示例 (GitHub)
REST API 操作
Azure SDK for JavaScript 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 JavaScript 范例与 REST API 操作进行交互。 用于设置和检索属性和元数据的客户端库方法使用以下 REST API 操作:
getProperties
方法通过调用获取 Blob 属性操作和获取 Blob 元数据操作来检索容器属性和元数据。