こんどはAzure Storageのコンテナのblobを別のコンテナにコピーする用があったので検証。
前回やったAmazon S3と同じことのAzure版。https://www.blog.slow-fire.net/2020/06/04/amazon-s3-バケット間でオブジェクトをコピー/
ただし、作るのも、実際のコピーも時間がかかった。やり方が悪かったのか?
このスクリプトは、ソースコンテナはがあれば、ターゲットコンテナは作ってくれる。
$SourceStorageAccount = “[[ソースストレージアカウント]]”
$SourceStorageKey = “[ソースストレージキー]]”
$DestStorageAccount = “[ターゲットストレージアカウント]]”
$DestStorageKey = “[ターゲットストレージキー]]”
$SourceContainerName = “[[ソースコンテナ]]”
$DestContainerName = “[[ターゲットコンテナ]]”
$SourceStorageContext = New-AzStorageContext –StorageAccountName $SourceStorageAccount -StorageAccountKey $SourceStorageKey
$DestStorageContext = New-AzStorageContext –StorageAccountName $DestStorageAccount -StorageAccountKey $DestStorageKey
#ターゲットコンテナを作成
New-AzStorageContainer -Context $DestStorageContext -Name $DestContainerName -Permission Off
#ソースコンテナの中身をリスト化
$Blobs = Get-AzStorageBlob -Context $SourceStorageContext -Container $SourceContainerName
#リストのファイルを転送する
foreach ($Blob in $Blobs) {
Write-Output “Moving $Blob.Name”
Start-AzStorageBlobCopy -Context $SourceStorageContext -SrcContainer $SourceContainerName -SrcBlob $Blob.Name `
-DestContext $DestStorageContext -DestContainer $DestContainerName -DestBlob $Blob.Name -Force
}
どうやら、ファイルを1つ1つづつ転送しているから時間がかかるのかと思う。