Проблемы с восстановлением снимка блочного блоба Azure в другой контейнер с помощью Powershell - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь восстановить вчерашний снимок для всех данных в контейнере хранилища BLOB-объектов Azure.

$StorageAccountName = "SOURCE_STORAGE_ACCOUNT"
$StorageAccountKey = "STORAGE_ACCOUNT_KEY"
$ContainerName = "SOURCE_CONTAINER"
$Ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey 
$ListBlob = Get-AzureStorageBlob –Context $Ctx -Container $ContainerName | Where-Object {$_.ICloudBlob.IsSnapshot -and $_.SnapshotTime -ne $null -and (($_.SnapshotTime.localdatetime).ToString('yyyyMMdd') -eq $ySnap)}
$DestContainerName = "DESTINATION_CONTAINER"

for ($i=0; $i -lt $ListBlob.length; $i++) {
    $snapshot=$ListBlob[$i]
    [Microsoft.WindowsAzure.Storage.Blob.CloudBlob] $snapshot.ICloudBlob
    Start-AzureStorageBlobCopy –Context $Ctx -ICloudBlob $snapshot -DestContainer $DestContainerName
}

Все работает до:

[Microsoft.WindowsAzure.Storage.Blob.CloudBlob] $snapshot.ICloudBlob

Я получаю ошибку:

Cannot convert the "Microsoft.Azure.Storage.Blob.CloudBlockBlob" value of type "Microsoft.Azure.Storage.Blob.CloudBlockBlob" to type "Microsoft.WindowsAzure.Storage.Blob.CloudBlob".
At line:1 char:1
+ [Microsoft.WindowsAzure.Storage.Blob.CloudBlob] $snapshot.ICloudBlob
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : ConvertToFinalInvalidCastException

Как бы я произнес $ снимокиз CloudBlockBlob в CloudBlob?Или я поступаю неправильно?

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2019

Дракончик, я дурак. Решением было использование свойства .ICloudBlob вместо того, чтобы пытаться преобразовать его в CloudBlob.

т.

Start-AzureStorageBlobCopy –Context $Ctx -ICloudBlob $snapshot.ICloudBlob -DestContainer $DestContainerName
...