ごった煮

色々な事を書いてます

Azure の Blob から Blob へファイルをコピーしたい

Blob ストレージを移行するといった理由で元々ある Blob から別の Blob へファイルをコピーしたい場合があるかと思いますが、 そういった場合に使えるコマンドを備忘録として残します。

使う物

  • Azure CLI (今回は、2.18.0 を基にします)

やってみる

下記のスクリプトを実行します。

PowerShell で実行しているので、他のシェルを使う場合は、適宜改行等を調整してください。

$DestinationStorageName = "コピー先のストレージアカウント名"
$DestinationStorageKey = "コピー先のストレージアカウントキー"
$DestinationContainerName = "コピー先のコンテナ名"

$SourceStorageName = "コピー元のストレージアカウント名"
$SourceStorageKey = "コピー元のストレージアカウントキー"
$SourceContainerName = "コピー元のコンテナ名"

az storage blob copy start-batch `
--destination-container $DestinationContainerName `
--account-name $DestinationStorageName `
--account-key $DestinationStorageKey `
--source-container $SourceContainerName `
--source-account-name $SourceContainerName `
--source-account-key $SourceStorageKey

このコマンドで、コピー元のコンテナに含まれる Blob をまとめてコピー先の Blob へコピーすることが出来ます。

コピーされた Blob の状態を確認したい場合は、

az storage blob show --container-name $DestinationContainerName --name "Blob の名前" --account-key $DestinationStorageKey --account-name $DestinationStorageName

で確認が出来ます。

まとめ

start-batch を実行すると、Azure 側でコピー処理をしてくれるのでクライアントであるこちらを介す必要が無く処理が出来るのでとても簡単です。

Azure CLI を使用するとこのような処理が簡単に出来るので、ぜひ覚えてみましょう。