Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

azcopyでAzure BLOBからAzure Filesへのファイルコピーを行う

こんにちは、MLBお兄さんこと松村です。
もうすぐ WBC が始まりますね。今年はメジャーリーガーも各国代表にたくさん選出されていますので、むちゃくちゃ楽しみにしています。


Azure Storage の CLI である azcopy を使って、BLOB から Files へのファイルコピーの方法を検証しました。

SAS の生成

azcopy で BLOB と Files の両方にアクセスするため、どちらも操作可能な SAS (Shared Access Signatures) を発行しましょう。
※ BLOB と Files それぞれの SAS を発行しても大丈夫です。

検証した限りの最小スコープとして

  • 使用できるサービス
    • BLOB
    • ファイル
  • 使用できるリソースの種類
    • コンテナー
    • オブジェクト
  • 与えられているアクセス許可
    • 読み取り
    • 書き込み
    • リスト
    • 追加
    • 作成

生成された SAS トークンを控えておきましょう。

コピーコマンド

先程作成した SAS を使用して、BLOB から Files へのコピーを実行します。
使用するコマンドは azcopy copy です。

SAS_TOKEN="?sv=..."

BLOB="https://{account}.blob.core.windows.net/{container}/*"$SAS_TOKEN

FILES="https://{account}.file.core.windows.net/{directory}/"$SAS_TOKEN

azcopy copy $BLOB $FILES

上記のコマンドでファイルコピーが行われることがわかります。

$ azcopy copy $BLOB $FILES
INFO: Scanning...
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
INFO: azcopy: A newer version 10.17.0 is available to download


Job 3e7b8656-976c-2541-59ab-904f8340f43d has started
Log file is located at: /home/xxx/.azcopy/3e7b8656-976c-2541-59ab-904f8340f43d.log

INFO: Trying 4 concurrent connections (initial starting point)
INFO: Trying 16 concurrent connections (seeking optimum)
100.0 %, 1 Done, 0 Failed, 0 Pending, 0 Skipped, 1 Total,


Job 3e7b8656-976c-2541-59ab-904f8340f43d summary
Elapsed Time (Minutes): 0.1668
Number of File Transfers: 1
Number of Folder Property Transfers: 0
Total Number of Transfers: 1
Number of Transfers Completed: 1
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 341091805
Final Job Status: Completed

はじめは、BLOB to BLOB や Files to Files という同じ種類しかできないかと思っていました。
ポータルでは手間な作業でも、 azcopy なら便利だなと再認識しました。