Ein Client löschte versehentlich einige Dateien aus einem Container in Azure Blob Storage (über einen CMS). Gibt es eine Möglichkeit für mich, innerhalb eines Azure-Portals die Sicherung und Wiederherstellung eines Containers zu verwalten, damit ich verhindern kann, dass dies erneut geschieht?Sicherung/Wiederherstellung Blob in Azure
0
A
Antwort
1
Ja, Sie können ein anderes Speicherkonto erstellen und Ihre Container-Blobs dorthin kopieren. Sie können Powershell dazu verwenden.
Code für die Kopie alle Container/Blobs auf ein anderes Speicherkonto:
$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
}
}
Code für die Kopie ein Container auf ein anderes Speicherkonto:
$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
}
können Sie ein Backup Ihrer Container in derselben Speicher Aslo Konto:
$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
}
Ist es möglich, in einen anderen Container auf dem gleichen Konto zu kopieren? Wie würde ich einen Sicherungscontainer im ursprünglichen Container wiederherstellen? –
Zur ersten Frage, ja, siehe meine aktualisierte Antwort. Zur zweiten Frage, ich denke, Sie müssen vielleicht die Blobs selbst zwischen den beiden Containern vergleichen und die verlorenen/geänderten Container/Blobs manuell mit dem Start-CopyAzureStorageBlob Befehl wiederherstellen. –