我是否可以向Azure存储发出API调用,以判断我的容器是否已被删除?

时间:2016-01-12 15:47:48

标签: azure azure-storage azcopy

我想清除一个存储帐户,然后恢复"使用AzCopy来实现它。

我使用

清除了昨晚的存储空间

$ctx = New-AzureStorageContext -StorageAccountName $storage -StorageAccountKey $key Get-AzureStorageContainer a* -Context $ctx | Remove-AzureStorageContainer -Force

然后使用AzCopy但得到;

The remote server returned an error: (409) Conflict. The specified container is being deleted. Try operation later.

我不想循环,尝试再次创建存储空间。我该如何等待删除操作完成?

是否存在Get-AzureStorageContainer状态? "删除"

2 个答案:

答案 0 :(得分:1)

错误消息不足以给您相同的行为。您可以自己编写该API。或者我错过了什么?

“正在删除指定的容器。请稍后再尝试操作。”

答案 1 :(得分:0)

  

是否存在Get-AzureStorageContainer状态? “删除?”

不幸的是没有。你只需要继续努力。

根据此处的文档:https://msdn.microsoft.com/en-us/library/azure/dd179408.aspx

  

删除容器时,不能使用同名的容器   创造至少30秒;容器可能无法使用   如果服务仍在处理,则超过30秒   请求即可。在删除容器时,尝试创建一个   同名的容器将失败,状态码为409(Conflict),   与服务返回附加的错误信息指示   正在删除容器。所有其他操作,包括   容器下任何blob上的操作都将失败并显示状态   正在删除容器时代码404(未找到)。

虽然他们说30秒但是根据容器中的斑点数量,它可能需要更长的时间。

其他替代方法是单独删除所有blob而不是删除容器。但是,由于每次删除都是一个单独的网络调用,因此该进程可能会运行较长时间(并且容易出现网络故障),但它会保证您在开始使用AzCopy时容器将为空。