前にもこちらの記事で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
何度も同じネタを書いている気がしますが。。。