SASを生成してBlobからファイルをダウンロードする(Python)

はじめに

Azure Blob StorageをPythonから操作します。
今回はAutoMLでトレーニングされた一番精度の良いモデルの「outputs」フォルダのSAS生成をPythonから行い、SAS URIを使ってローカルファイルにダウンロードしてみます。

無題.png

環境

  • OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
  • Visual Studio Code 1.73.1
  • Python 3.8

BLOBのSAS生成

それではPythonからSAS生成をします。

以下のコードでは、コンテナーにある特定のフォルダのSASを生成し、このSASトークンを使ってローカルファイルにダウンロードします。

account_urlにはストレージアカウント名を入れます。ポータルサイトから確認できます。
無題.png

container_nameにはSAS生成をするBLOBが入っているコンテナー名を入れます。
今回SAS生成する「outputs」フォルダは「azureml」というコンテナーにあるので、次のように入力します。

続いてoutputs_pathには「outputs」フォルダが入っているパスを入力します。

outputs_folderはダウンロード先のローカルのフォルダの名前を入れます。
今回はoutputsという名前のフォルダにすべてダウンロードするようにします。

後の流れとしては、generate_blob_sas()でSASトークンを作成し、その後ストレージリソースURIとSASトークンを「?」でつなげてSAS URIを作ればダウンロードできます。

expiryには1時間の有効期限をつけています。

実行後、ローカルの「outputs」フォルダにダウンロードされたファイルが入っているのを確認できます。

無題.png

この記事を書いた人

azure-recipe-user