我只想清理(dump,zap,del 。)Azure Blob容器。我怎么能这样做?
注意:容器由IIS(运行Webrole)日志(wad-iis-logfiles)使用。
答案 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。
答案 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)
对于这种情况,更好的选择是识别容器中找到的项目列表。然后从容器中删除每个项目。这是最好的选择。如果删除容器,下次应该有运行时错误...