你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 JavaScript 或 TypeScript 删除和还原 blob 容器
本文介绍了如何使用适用于 JavaScript 的 Azure 存储客户端库删除容器。 如果已启用容器软删除,则可以还原已删除的容器。
先决条件
- 本文中的示例假设你已经设置了一个项目来使用适用于 JavaScript 的 Azure Blob 存储客户端库。 若要了解如何设置项目(包括安装包、导入模块,以及创建授权客户端对象来使用数据资源),请参阅开始使用 Azure Blob 存储和 JavaScript。
- 授权机制必须具有删除 blob 容器或还原软删除容器的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南:
删除容器
要删除容器,请使用 BlobServiceClient 类中的以下方法:
还可以使用 ContainerClient 类中的以下方法来删除容器:
删除容器后,至少在 30 秒内无法使用相同的名称创建容器。 尝试创建同名容器失败,并出现 HTTP 错误代码 409 (Conflict)
。 针对容器或其包含的 Blob 执行任何其他操作失败,并出现 HTTP 错误代码 404 (Not Found)
。
下面的示例使用 BlobServiceClient
对象删除指定容器:
async function deleteContainer(blobServiceClient, containerName) {
return await blobServiceClient.deleteContainer(containerName);
}
以下示例演示如何删除以指定的前缀开头的所有容器:
async function deleteContainersWithPrefix(blobServiceClient, prefix) {
const containerOptions = {
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix
}
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
try{
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
await containerClient.delete();
console.log(`Deleted ${containerItem.name} container - success`);
}catch(ex){
console.log(`Deleted ${containerItem.name} container - failed - ${ex.message}`);
}
}
}
还原软删除的容器
为存储帐户启用容器软删除后,容器及其内容被删除后可以在指定的保持期内恢复。 可以使用 BlobServiceClient 对象还原软删除的容器:
以下示例查找已删除的容器,获取该已删除容器的版本 ID,然后将该 ID 传递到 undeleteContainer
方法以还原该容器。
async function undeleteContainer(blobServiceClient, containerName) {
// Version to restore
let containerVersion;
const containerOptions = {
includeDeleted: true,
prefix: containerName
}
// Find the deleted container and restore it
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
if (containerItem.name === containerName) {
containerVersion = containerItem.version;
}
}
const containerClient = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
);
}
资源
若要详细了解如何使用适用于 JavaScript 的 Azure Blob 存储客户端库来删除容器,请参阅以下资源。
代码示例
- 查看本文中的 JavaScript 和 TypeScript 代码示例 (GitHub)
REST API 操作
Azure SDK for JavaScript 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 JavaScript 范例与 REST API 操作进行交互。 用于删除或还原容器的客户端库方法使用以下 REST API 操作:
客户端库资源
另请参阅
相关内容
- 本文是适用于 JavaScript/Typescript 的 Blob 存储开发人员指南的一部分。 要了解详细信息,请参阅构建 JavaScript/Typescript 应用中的完整开发人员指南文章列表。