如何清理Azure存储Blob容器?

时间:2012-05-03 06:26:42

标签: azure blobstore azure-storage-blobs

我只想清理(dump,zap,del )Azure Blob容器。我怎么能这样做?

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

9 个答案:

答案 0 :(得分:23)

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

您唯一的选择是一次删除一个。如果您可以从存储blob的同一数据中心进行删除,则比在本地运行delete更快。这可能意味着编写代码(或者您可以将RDP插入到您的某个实例中并安装云浏览器)。如果您正在编写代码,则可以通过并行删除项目来加快整个过程。类似的东西可行:

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

答案 1 :(得分:13)

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

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

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

答案 2 :(得分:12)

使用Azure CLI 2.0的单行内容:

<input Value="@ViewBag.Name" class="form-control text-box single-line" id="Name" name="Name" type="text" value="" />

在您的案例中用适当的值替换az storage blob delete-batch --account-name <storage_account_name> --source <container_name> <storage_account_name>

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

<container_name>

答案 3 :(得分:6)

尝试将cloudberry产品用于windows azure

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

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

答案 4 :(得分:5)

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

答案 5 :(得分: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列表并逐个删除它们。

答案 6 :(得分:3)

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

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

真正的好处是群集不太可能会崩溃,如果你有屏幕运行,那么当你删除时,你不会失去你的会话。

答案 7 :(得分:2)

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

答案 8 :(得分:1)

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