我需要先删除特定容器中的所有斑点,然后再备份到该容器。以下无效。正确的方法是什么?
Get-AzStorageBlob -Container $ContainerName -Context $ctx | Remove-AzStorageBlob -DeleteSnapshot -Force
对于Get-AzStorageBlob返回的每个Blob,我都会收到以下错误消息:
Remove-AzStorageBlob : The specified blob does not exist. HTTP Status Code: 404 - HTTP Error Message: The specified blob does not exist.
ErrorCode: BlobNotFound
ErrorMessage: The specified blob does not exist.
RequestId:eb2612f4-f01e-0067-5471-3e9f69000000
Time:2019-07-19T20:33:50.1261168Z
At line:15 char:62
+ ... inerName -Context $ctx | Remove-AzStorageBlob -DeleteSnapshot -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Remove-AzStorageBlob], StorageException
+ FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.Blob.RemoveStorageAzureBlobCommand
答案 0 :(得分:0)
我认为Remove-AzStorageBlob
不能批量删除blob,因此您将不得不遍历从Get-AzureStorageBlob
返回的blob。
Get-AzStorageBlob -Container $ContainerName -Context $ctx | ForEach-Object {
$_ | Remove-AzureStorageBlob # or: Remove-AzureStorageBlob -ICloudBlob $_.ICloudBlob -Context $ctx
}
答案 1 :(得分:0)
我使用您的ps脚本进行了测试,它是由-DeleteSnapshot -Force
引起的,请删除它,然后效果良好。
Get-AzureStorageBlob -Container $ContainerName -Context $ctx | Remove-AzureStorageBlob
如果要删除快照,只需添加-Force
。这里是Parameters description,-Force
表示此cmdlet会删除blob及其快照,而无需确认。
您可以尝试一下,希望对您有所帮助。