Azureのコンテナ内のblobを別のコンテナにコピーをする

投稿者: | 6月 4, 2020

こんどは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つづつ転送しているから時間がかかるのかと思う。

コメントを残す