如何清理 Azure 存储 Blob 容器?

11 浏览
0 Comments

如何清理 Azure 存储 Blob 容器?

我只想清理(删除、清空)一个Azure Blob容器。我该如何做?\n注意:这个容器被IIS(运行Webrole)日志(wad-iis-logfiles)使用。

0
0 Comments

如何清理Azure存储Blob容器?

最简单的方法是使用Microsoft Azure Storage Explorer。

  1. 下载并安装Azure Storage Explorer
  2. 使用适当的Microsoft帐户登录
  3. 浏览到要清空的容器
  4. 点击“全选”按钮
  5. 点击“删除”按钮

这里的重点是“HOW”-您必须点击“加载更多”直到到达最后一页的Blob,然后点击“全选”,然后删除。

选择全部可以应用于“本页全部”和“全部缓存”,无需加载所有页面。这是一个很棒的工具,感谢分享这些信息。

Azure Storage Explorer很棒,但删除文件的速度很慢。尝试清理包含10万个以上文件的容器-这将需要很长时间。

同意。我翻了20页,每页1000条记录(只需继续点击第10、20、30页等),最终将20,000条记录放入缓存,一切看起来都很正常。然后我点击“全选>缓存”,但一旦我点击删除,它就完全锁定了我的笔记本电脑(配备Core i5和8GB RAM),几分钟后Azure Storage Explorer崩溃。我重复这个过程,结果相同。自Win7时代或更早以来,我还没有见过一个程序崩溃得这么彻底...

使用Azure CLI吧:)我将更新我的答案,添加一个指向joanlofe答案的链接。

是的,这是一个明显的答案,但是如果我只是每18-24个月才执行一次这样的任务,那么能够打开一个图形界面来执行这样的任务将是很好的,而不是每次都要查找答案:)

0
0 Comments

问题的原因是,Azure存储Blob容器只能通过删除整个容器来批量删除Blob,而删除容器后需要一段时间才能再次使用该容器名称。另一种选择是逐个删除Blob,如果可以在存储Blob的同一数据中心进行删除,速度会比本地运行删除快。

解决方法是编写代码来实现删除操作,可以并行删除项来加快整个过程。下面是一个示例代码:

Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());

如果使用了文件夹,可以将文件作为一个扁平列表返回:

Parallel.ForEach(blobContainer.ListBlobs(useFlatBlobListing: true), x => ((CloudBlob)x).Delete());

这样做会更安全一些。

0
0 Comments

问题的出现原因:用户想要了解如何清理Azure存储Blob容器,但是在尝试使用Azure CLI 2.0的命令时遇到了一些问题,如缺少必要的参数、错误的参数格式等。

解决方法:

1. 使用Azure CLI 2.0的命令az storage blob delete-batch --account-name <storage_account_name> --source <container_name>,并将<storage_account_name><container_name>换成相应的值。

2. 运行az storage blob delete-batch -h命令查看帮助。

3. 如果出现错误信息:"This operation is not permitted because the blob has snapshots. ErrorCode: SnapshotsPresent",可以尝试添加--delete-snapshots include选项。

4. 如果有访问Azure门户的权限,可以使用Azure门户进行操作。

5. 通过在命令中添加--connection-string参数,并用引号括起来。

6. 如果上述方法太慢,需要寻找替代方法。

7. 对于命令az storage blob delete-batch --account-name myaccountname --source $web出现argument --source/-s: expected one argument的错误。

文章内容如下:

如何清理Azure存储Blob容器?

使用Azure CLI 2.0的命令az storage blob delete-batch --account-name <storage_account_name> --source <container_name>可以快速清理Azure存储Blob容器。在运行命令之前,需将<storage_account_name><container_name>替换为实际的值。可以通过运行az storage blob delete-batch -h命令查看命令的帮助信息。如果出现错误信息:"This operation is not permitted because the blob has snapshots. ErrorCode: SnapshotsPresent",可以尝试添加--delete-snapshots include选项。如果有访问Azure门户的权限,可以使用Azure门户进行操作。另外,在命令中添加--connection-string参数,并用引号括起来。如果上述方法太慢,可以寻找替代方法。对于命令az storage blob delete-batch --account-name myaccountname --source $web出现argument --source/-s: expected one argument的错误。

0