読者です 読者をやめる 読者になる 読者になる

Azure BLOBコピー処理のPowerShellスクリプト

Azure PowerShell

前にもこちらの記事でAzureのBLOBのコピースクリプトを載せましたが、
PowerShellでAzureストレージアカウント間のBLOBをコピーする - YOMON8.NET

.Netのクラスを多用していて読みにくかったので、PowerShellのコマンドレットを利用する形で書き換えてみました。

PowerShellの方がシンプルに書けました。


Import-Module Azure

#パラメータ設定
$srcStorageAccountName = "コピー元アカウント"
$srcAccountKey = "コピー元アカウントアクセスキー"
$srcContainerName = "コピー元のコンテナ名"
$srcBlobName = "コピー元のBLOB名"

$destStorageAccountName = "コピー先アカウント"
$destAccountKey = "コピー先アカウントアクセスキー"
$destContainerName = "コピー先のコンテナ名"
$destBlobName = "コピー先のBLOB名"


#コピー開始処理
$srcContext = New-AzureStorageContext -StorageAccountName $srcStorageAccountName -StorageAccountKey $srcAccountKey
$destContext = New-AzureStorageContext -StorageAccountName $destStorageAccountName -StorageAccountKey $destAccountKey
Start-AzureStorageBlobCopy -Context $srcContext -SrcContainer $srcContainerName -SrcBlob $srcBlobName -DestContext $destContext -DestContainer $destContainerName -DestBlob $destBlobName 


#コピーステータス監視
Write-Host (Get-Date) ": Copy Started"
do{
    Start-Sleep -Seconds 5
    $copyStatus = Get-AzureStorageBlobCopyState -Context $destContext -Container $destContainerName -Blob $destBlobName
    $percent = $copyStatus.BytesCopied / $copyStatus.TotalBytes * 100
    Write-Progress -Activity "Working..." -PercentComplete $percent -CurrentOperation "$percent% complete" -Status "Please wait."
}while($copyStatus.Status -eq "Pending")
Write-Host (Get-Date) ": Copy Completed"
$copyStatus

何度も同じネタを書いている気がしますが。。。