我只想清理(转储、删除、删除。)一个 Azure Blob 容器。我怎样才能做到这一点?
注意:该容器由 IIS(运行 Webrole)日志 (wad-iis-logfiles) 使用。
我只想清理(转储、删除、删除。)一个 Azure Blob 容器。我怎样才能做到这一点?
注意:该容器由 IIS(运行 Webrole)日志 (wad-iis-logfiles) 使用。
使用 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
只有一种方法可以批量删除 Blob,即删除整个容器。正如您所说,在删除容器和您可以再次使用该容器名称之间存在延迟。
您唯一的其他选择是一次删除一个。如果您可以从存储 Blob 的同一个数据中心执行删除操作,则它会比在本地运行删除操作更快。这可能意味着编写代码(或者您可以将 RDP 放入您的实例之一并安装云资源管理器)。如果您正在编写代码,则可以通过并行删除项目来加快整个过程。与此类似的东西会起作用:
Parallel.ForEach(myCloudBlobClient.GetContainerReference(myContainerName).ListBlobs(), x => ((CloudBlob) x).Delete());
更新:现在(2018 年)更简单的方法是使用 Azure CLI。检查joanlofe 的答案:)
2016 年最简单的方法是使用 Microsoft Azure Storage Explorer IMO。
尝试使用适用于 windows azure 的 cloudberry 产品
这是链接:http ://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx
您可以在 blob 中搜索特定扩展名。选择多个 blob 并删除它们
如果您的意思是要删除一个容器。我建议您检查http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx以查看是否删除容器操作(容器和其中包含的任何 blob 稍后在垃圾收集期间被删除) 可以满足要求。
如果您对 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 列表并一个一个地删除它们。
如果您使用的是可以访问该存储帐户的 spark (HDInsight) 集群,那么您可以在命令行上使用 HDFS 命令;
hdfs dfs -rm -r wasbs://container_name@account_name.blob.core.windows.net/path_goes_here
真正的好处是集群不太可能出现故障,并且如果您在其上运行屏幕,那么您在删除时不会丢失会话。
您可以使用Cloud Combine删除 Azure 容器中的所有 Blob。
对于这种情况,更好的选择是识别在容器中找到的项目列表。然后从容器中删除每个项目。那是最好的选择。如果您删除容器,您下次应该会出现运行时错误...