0
客戶端意外地從Azure Blob存儲中的Container(通過CMS)中刪除了一些文件。有沒有辦法讓我在Azure門戶中管理容器的備份和恢復,以便我可以防止再次發生這種情況?Azure中的備份/恢復Blob
客戶端意外地從Azure Blob存儲中的Container(通過CMS)中刪除了一些文件。有沒有辦法讓我在Azure門戶中管理容器的備份和恢復,以便我可以防止再次發生這種情況?Azure中的備份/恢復Blob
是的,您可以創建另一個存儲帳戶並將其複製到它的容器blob。你可以使用powershell來做到這一點。
代碼副本的所有容器/斑點到另一個存儲賬戶:用於複製
$SourceStorageAccount = "sourceStorageAccount"
$SourceStorageKey = "sourceKey"
$DestStorageAccount = "destStorageAccount"
$DestStorageKey = "destKey"
$SourceStorageContext = New-AzureStorageContext –StorageAccountName $SourceStorageAccount -StorageAccountKey $SourceStorageKey
$DestStorageContext = New-AzureStorageContext –StorageAccountName $DestStorageAccount -StorageAccountKey $DestStorageKey
$containers = Get-AzureStorageContainer -Context $SourceStorageContext
foreach($container in $containers) {
New-AzureStorageContainer -Context $DestStorageContext -Name $container.name -Permission Off
$Blobs = Get-AzureStorageBlob -Context $SourceStorageContext -Container $container.name
#Do the copy of everything
foreach ($Blob in $Blobs) {
Write-Output "Moving $Blob.Name"
Start-CopyAzureStorageBlob -Context $SourceStorageContext -SrcContainer $container.name -SrcBlob $Blob.Name `
-DestContext $DestStorageContext -DestContainer $container.name -DestBlob $Blob.Name
}
}
代碼到另一個存儲帳戶的容器:
$SourceStorageAccount = "sourceStorageAccount"
$SourceStorageKey = "sourceKey"
$DestStorageAccount = "destStorageAccount"
$DestStorageKey = "destKey"
$containerName = 'SourceContainerName';
$SourceStorageContext = New-AzureStorageContext –StorageAccountName $SourceStorageAccount -StorageAccountKey $SourceStorageKey
$DestStorageContext = New-AzureStorageContext –StorageAccountName $DestStorageAccount -StorageAccountKey $DestStorageKey
New-AzureStorageContainer -Context $DestStorageContext -Name $containerName -Permission Off
$Blobs = Get-AzureStorageBlob -Context $SourceStorageContext -Container $containerName
#Do the copy of everything
foreach ($Blob in $Blobs) {
Write-Output "Moving $Blob.Name"
Start-CopyAzureStorageBlob -Context $SourceStorageContext -SrcContainer $containerName -SrcBlob $Blob.Name `
-DestContext $DestStorageContext -DestContainer $containerName -DestBlob $Blob.Name
}
,你可以在同一個存儲ASLO備份您的容器帳戶:
$StorageAccount = "yourStorageAccount"
$StorageKey = "yourStorageKey"
$SourceContainerName = 'yourContainerName';
$DestContainerName = 'yourBackupContainerName';
$StorageContext = New-AzureStorageContext –StorageAccountName $StorageAccount -StorageAccountKey $StorageKey
New-AzureStorageContainer -Context $StorageContext -Name $DestContainerName -Permission Off
$Blobs = Get-AzureStorageBlob -Context $StorageContext -Container $SourceContainerName
#Do the copy of everything
foreach ($Blob in $Blobs) {
Write-Output "Moving $Blob.Name"
Start-CopyAzureStorageBlob -Context $StorageContext -SrcContainer $SourceContainerName -SrcBlob $Blob.Name `
-DestContext $StorageContext -DestContainer $DestContainerName -DestBlob $Blob.Name
}
是否可以複製到同一帳戶的不同容器?另外,如何將備份容器恢復到原始容器? –
對於第一個問題,是的,看到我更新的答案。對於第二個問題,我想也許你必須在兩個容器之間自己比較blob,並使用Start-CopyAzureStorageBlob命令手動恢復丟失/更改的容器/ Blob。 –