40

我只想清理(转储、删除、删除)一个 Azure Blob 容器。我怎样才能做到这一点?

注意:该容器由 IIS(运行 Webrole)日志 (wad-iis-logfiles) 使用。

4

9 回答 9

30

使用 Azure CLI 2.0 的单线:

az storage blob delete-batch --account-name <storage_account_name> --source <container_name>

在您的情况下用适当的值替换<storage_account_name>和。<container_name>

您可以通过运行以下命令查看该命令的帮助:

az storage blob delete-batch -h
于 2018-02-08T16:22:53.423 回答
26

只有一种方法可以批量删除 Blob,即删除整个容器。正如您所说,在删除容器和您可以再次使用该容器名称之间存在延迟。

您唯一的其他选择是一次删除一个。如果您可以从存储 Blob 的同一个数据中心执行删除操作,则它会比在本地运行删除操作更快。这可能意味着编写代码(或者您可以将 RDP 放入您的实例之一并安装云资源管理器)。如果您正在编写代码,则可以通过并行删除项目来加快整个过程。与此类似的东西会起作用:

Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());
于 2012-05-04T05:36:25.487 回答
18

更新:现在(2018 年)更简单的方法是使用 Azure CLI。检查joanlofe 的答案:)


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

  1. 下载 Azure 存储资源管理器并安装它
  2. 使用适当的 Microsoft 帐户登录
  3. 浏览到要清空的容器
  4. 单击全选按钮
  5. 点击删除按钮

截屏

于 2016-05-04T21:08:54.167 回答
6

尝试使用适用于 windows azure 的 cloudberry 产品

这是链接:http ://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx

您可以在 blob 中搜索特定扩展名。选择多个 blob 并删除它们

于 2012-05-14T13:43:14.040 回答
5

如果您的意思是要删除一个容器。我建议您检查http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx以查看是否删除容器操作(容器和其中包含的任何 blob 稍后在垃圾收集期间被删除) 可以满足要求。

于 2012-05-03T07:54:26.877 回答
4

如果您对 CLI 方式感兴趣,那么以下代码将帮助您:

for i in `az storage blob list -c "Container-name" --account-name "Storage-account-name" --account-key "Storage-account-access-key" --output table | awk {'print $1'} | sed '1,2d' | sed '/^$/d'`; do az storage blob delete --name $i -c "Container-name" --account-name "Storage-account-name" --account-key "Storage-account-access-key" --output table; done

它首先获取容器中的 blob 列表并一个一个地删除它们。

于 2017-07-04T13:50:45.720 回答
3

如果您使用的是可以访问该存储帐户的 spark (HDInsight) 集群,那么您可以在命令行上使用 HDFS 命令;

hdfs dfs -rm -r wasbs://container_name@account_name.blob.core.windows.net/path_goes_here

真正的好处是集群不太可能出现故障,并且如果您在其上运行屏幕,那么您在删除时不会丢失会话。

于 2017-08-21T17:51:16.063 回答
1

您可以使用Cloud Combine删除 Azure 容器中的所有 Blob。

于 2013-04-22T23:10:56.567 回答
1

对于这种情况,更好的选择是识别在容器中找到的项目列表。然后从容器中删除每个项目。那是最好的选择。如果您删除容器,您下次应该会出现运行时错误...

于 2012-05-08T12:40:14.150 回答