クイック スタート:Python 用 Azure Blob Storage クライアント ライブラリ v12Quickstart: Azure Blob storage client library v12 for Python

Python 用 Azure Blob Storage クライアント ライブラリ v12 を使用してみましょう。Get started with the Azure Blob storage client library v12 for Python. Azure Blob Storage は、Microsoft のクラウド用オブジェクト ストレージ ソリューションです。Azure Blob storage is Microsoft's object storage solution for the cloud. 手順に従ってパッケージをインストールし、基本タスクのコード例を試してみましょう。Follow steps to install the package and try out example code for basic tasks. Blob Storage は、テキスト データやバイナリ データなどの大量の非構造化データを格納するために最適化されています。Blob storage is optimized for storing massive amounts of unstructured data.

注意

以前の SDK バージョンを使ってみるには、「クイックスタート: Python 用 Azure Blob Storage クライアント ライブラリ」を参照してください。To get started with the previous SDK version, see Quickstart: Azure Blob storage client library for Python.

Azure Blob Storage クライアント ライブラリを使用すると、以下のことができます。Use the Azure Blob storage client library to:

  • コンテナーを作成するCreate a container
  • Azure Storage へ BLOB をアップロードするUpload a blob to Azure Storage
  • コンテナー内のすべての BLOB を一覧表示するList all of the blobs in a container
  • ローカル コンピューターに BLOB をダウンロードするDownload the blob to your local computer
  • コンテナーを削除するDelete a container

API のリファレンスのドキュメント | ライブラリのソース コード | パッケージ (Python Package Index) | サンプルAPI reference documentation | Library source code | Package (Python Package Index) | Samples

注意

この記事で説明されている機能は、階層構造の名前空間を持つアカウントで使用できるようになりました。The features described in this article are now available to accounts that have a hierarchical namespace. 制限を確認するには、Azure Data Lake Storage Gen2 に関する既知の問題 の記事を参照してください。To review limitations, see the Known issues with Azure Data Lake Storage Gen2 article.

前提条件Prerequisites

設定Setting up

このセクションでは、Python 用 Azure Blob Storage クライアント ライブラリ v12 を操作するためのプロジェクトの準備について説明します。This section walks you through preparing a project to work with the Azure Blob storage client library v12 for Python.

プロジェクトを作成するCreate the project

blob-quickstart-v12 という名前の Python アプリケーションを作成します。Create a Python application named blob-quickstart-v12.

  1. コンソール ウィンドウ (cmd、PowerShell、Bash など) で、プロジェクト用に新しいディレクトリを作成します。In a console window (such as cmd, PowerShell, or Bash), create a new directory for the project.

    mkdir blob-quickstart-v12
    
  2. 新しく作成された blob-quickstart-v12 ディレクトリに切り替えます。Switch to the newly created blob-quickstart-v12 directory.

    cd blob-quickstart-v12
    
  3. blob-quickstart-v12 ディレクトリ内に、data という別のディレクトリを作成します。In side the blob-quickstart-v12 directory, create another directory called data. BLOB データ ファイルは、ここに作成され格納されます。This is where the blob data files will be created and stored.

    mkdir data
    

パッケージをインストールするInstall the package

まだアプリケーション ディレクトリにいる間に、pip install コマンドを使用して、Python 用の Azure Blob Storage クライアント ライブラリ パッケージをインストールします。While still in the application directory, install the Azure Blob storage client library for Python package by using the pip install command.

pip install azure-storage-blob

このコマンドでは、Python パッケージ用 Azure Blob Storage クライアント ライブラリとそれに依存しているすべてのライブラリをインストールします。This command installs the Azure Blob storage client library for Python package and all the libraries on which it depends. この場合、これは Python 用の Azure コア ライブラリになります。In this case, that is just the Azure core library for Python.

アプリのフレームワークを設定するSet up the app framework

プロジェクト ディレクトリで次の操作を行います。From the project directory:

  1. コード エディターで新しいテキスト ファイルを開きますOpen a new text file in your code editor

  2. import ステートメントを追加しますAdd import statements

  3. 極めて基本的な例外処理を含め、プログラムの構造を作成しますCreate the structure for the program, including very basic exception handling

    コードは次のとおりです。Here's the code:

    import os, uuid
    from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
    
    try:
        print("Azure Blob storage v12 - Python quickstart sample")
        # Quick start code goes here
    except Exception as ex:
        print('Exception:')
        print(ex)
    
  4. blob-quickstart-v12 ディレクトリに新しいファイルを blob-quickstart-v12.py として保存するSave the new file as blob-quickstart-v12.py in the blob-quickstart-v12 directory.

Azure Portal で資格情報をコピーするCopy your credentials from the Azure portal

サンプル アプリケーションから Azure Storage に対して要求を実行するときは、承認されている必要があります。When the sample application makes a request to Azure Storage, it must be authorized. 要求を承認するには、ストレージ アカウントの資格情報を接続文字列としてアプリケーションに追加します。To authorize a request, add your storage account credentials to the application as a connection string. 次の手順に従って、ストレージ アカウントの資格情報を表示します。View your storage account credentials by following these steps:

  1. Azure portal にサインインするSign in to the Azure portal.

  2. 自分のストレージ アカウントを探します。Locate your storage account.

  3. ストレージ アカウントの概要の [設定] セクションで、 [アクセス キー] を選択します。In the Settings section of the storage account overview, select Access keys. ここでは、アカウント アクセス キーと各キーの完全な接続文字列を表示できます。Here, you can view your account access keys and the complete connection string for each key.

  4. [Key1][接続文字列] の値を見つけ、 [コピー] ボタンを選択して接続文字列をコピーします。Find the Connection string value under key1, and select the Copy button to copy the connection string. すぐ後の手順で、接続文字列の値を環境変数に追加します。You will add the connection string value to an environment variable in the next step.

    Azure portal から接続文字列をコピーする方法を示すスクリーンショット

ストレージ接続文字列の構成Configure your storage connection string

接続文字列をコピーした後、アプリケーションを実行しているローカル マシンの新しい環境変数にそれを書き込みます。After you have copied your connection string, write it to a new environment variable on the local machine running the application. 環境変数を設定するには、コンソール ウィンドウを開いて、お使いのオペレーティング システムの手順に従います。To set the environment variable, open a console window, and follow the instructions for your operating system. <yourconnectionstring> は、実際の接続文字列に置き換えてください。Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Windows で環境変数を追加した後、コマンド ウィンドウの新しいインスタンスを開始する必要があります。After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOSmacOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

プログラムの再起動Restart programs

環境変数を追加した後、環境変数の読み取りを必要とする実行中のプログラムをすべて再起動します。After you add the environment variable, restart any running programs that will need to read the environment variable. たとえば、続行する前に、ご使用の開発環境またはエディターを再起動します。For example, restart your development environment or editor before continuing.

オブジェクト モデルObject model

Azure Blob Storage は、大量の非構造化データを格納するために最適化されています。Azure Blob storage is optimized for storing massive amounts of unstructured data. 非構造化データとは、特定のデータ モデルや定義に従っていないデータであり、テキスト データやバイナリ データなどがあります。Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Blob Storage には、3 種類のリソースがあります。Blob storage offers three types of resources:

  • ストレージ アカウントThe storage account
  • ストレージ アカウント内のコンテナーA container in the storage account
  • コンテナー内の BLOBA blob in the container

次の図に、これらのリソースの関係を示します。The following diagram shows the relationship between these resources.

Blob Storage のアーキテクチャ図

これらのリソースとやり取りするには、以下の Python クラスを使用します。Use the following Python classes to interact with these resources:

  • BlobServiceClient:BlobServiceClient クラスを使用して、Azure Storage リソースと BLOB コンテナーを操作できます。BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • ContainerClient:ContainerClient クラスを使用して、Azure Storage コンテナーとその BLOB を操作できます。ContainerClient: The ContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient:BlobClient クラスを使用して、Azure Storage BLOB を操作できます。BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.

コード例Code examples

以下のサンプル コード スニペットは、Python 用 Azure Blob Storage クライアント ライブラリを使用して以下を実行する方法を示します。These example code snippets show you how to perform the following with the Azure Blob storage client library for Python:

接続文字列を取得するGet the connection string

以下のコードでは、「ストレージ接続文字列の構成」セクションで作成した環境変数から、ストレージ アカウントに対する接続文字列を取得します。The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

このコードを try ブロック内に追加します。Add this code inside the try block:

# Retrieve the connection string for use with the application. The storage
# connection string is stored in an environment variable on the machine
# running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable is
# created after the application is launched in a console or with Visual Studio,
# the shell or application needs to be closed and reloaded to take the
# environment variable into account.
connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')

コンテナーを作成するCreate a container

新しいコンテナーの名前を決定します。Decide on a name for the new container. 次のコードでは、確実に一意になるように、コンテナー名に UUID 値を追加します。The code below appends a UUID value to the container name to ensure that it is unique.

重要

コンテナーの名前は小文字にする必要があります。Container names must be lowercase. コンテナーと BLOB の名前付けの詳細については、「Naming and Referencing Containers, Blobs, and Metadata (コンテナー、BLOB、メタデータの名前付けと参照)」を参照してください。For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

from_connection_string メソッドを呼び出して、BlobServiceClient クラスのインスタンスを作成します。Create an instance of the BlobServiceClient class by calling the from_connection_string method. 次に、create_container メソッドを呼び出し、実際にストレージ アカウントにコンテナーを作成します。Then, call the create_container method to actually create the container in your storage account.

try ブロックの末尾に、次のコードを追加します。Add this code to the end of the try block:

# Create the BlobServiceClient object which will be used to create a container client
blob_service_client = BlobServiceClient.from_connection_string(connect_str)

# Create a unique name for the container
container_name = "quickstart" + str(uuid.uuid4())

# Create the container
container_client = blob_service_client.create_container(container_name)

コンテナーに BLOB をアップロードするUpload blobs to a container

次のコード スニペット:The following code snippet:

  1. ローカル ディレクトリにテキスト ファイルを作成します。Creates a text file in the local directory.
  2. コンテナーを作成する」セクションからの BlobServiceClientget_blob_client メソッドを呼び出すことで、BlobClient オブジェクトへの参照を取得します。Gets a reference to a BlobClient object by calling the get_blob_client method on the BlobServiceClient from the Create a container section.
  3. upload_blob メソッドを呼び出して、ローカル テキスト ファイルを BLOB にアップロードします。Uploads the local text file to the blob by calling the upload_blob method.

try ブロックの末尾に、次のコードを追加します。Add this code to the end of the try block:

# Create a file in local Documents directory to upload and download
local_path = "./data"
local_file_name = "quickstart" + str(uuid.uuid4()) + ".txt"
upload_file_path = os.path.join(local_path, local_file_name)

# Write text to the file
file = open(upload_file_path, 'w')
file.write("Hello, World!")
file.close()

# Create a blob client using the local file name as the name for the blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=local_file_name)

print("\nUploading to Azure Storage as blob:\n\t" + local_file_name)

# Upload the created file
with open(upload_file_path, "rb") as data:
    blob_client.upload_blob(data)

コンテナー内の BLOB を一覧表示するList the blobs in a container

list_blobs メソッドを呼び出して、コンテナー内の BLOB を一覧表示します。List the blobs in the container by calling the list_blobs method. この場合、コンテナーに BLOB が 1 つだけ追加されているので、一覧表示操作ではその 1 つの BLOB だけが返されます。In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

try ブロックの末尾に、次のコードを追加します。Add this code to the end of the try block:

print("\nListing blobs...")

# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
    print("\t" + blob.name)

BLOB をダウンロードするDownload blobs

download_blob メソッドを呼び出して、以前に作成した BLOB をダウンロードします。Download the previously created blob by calling the download_blob method. サンプル コードでは、ローカル ファイル システム内で両方のファイルを見ることができるように、ファイル名に "DOWNLOAD" というサフィックスを追加します。The example code adds a suffix of "DOWNLOAD" to the file name so that you can see both files in local file system.

try ブロックの末尾に、次のコードを追加します。Add this code to the end of the try block:

# Download the blob to a local file
# Add 'DOWNLOAD' before the .txt extension so you can see both files in Documents
download_file_path = os.path.join(local_path, str.replace(local_file_name ,'.txt', 'DOWNLOAD.txt'))
print("\nDownloading blob to \n\t" + download_file_path)

with open(download_file_path, "wb") as download_file:
    download_file.write(blob_client.download_blob().readall())

コンテナーを削除するDelete a container

次のコードでは、delete_container メソッドを使用して、コンテナー全体を削除することによって、アプリが作成したリソースがクリーンアップされます。The following code cleans up the resources the app created by removing the entire container using the delete_container method. 必要に応じてローカル ファイルを削除することもできます。You can also delete the local files, if you like.

アプリでは、BLOB、コンテナー、およびローカル ファイルを削除する前に、input() を呼び出すことで、ユーザーの入力を一時停止します。The app pauses for user input by calling input() before it deletes the blob, container, and local files. このとき、リソースが削除される前に、実際に正しく作成されたことを確認できます。This is a good chance to verify that the resources were actually created correctly, before they are deleted.

try ブロックの末尾に、次のコードを追加します。Add this code to the end of the try block:

# Clean up
print("\nPress the Enter key to begin clean up")
input()

print("Deleting blob container...")
container_client.delete_container()

print("Deleting the local source and downloaded files...")
os.remove(upload_file_path)
os.remove(download_file_path)

print("Done")

コードの実行Run the code

このアプリでは、ローカル フォルダーにテスト ファイルが作成され、BLOB ストレージにアップロードされます。This app creates a test file in your local folder and uploads it to Blob storage. 次に、コンテナー内の BLOB を一覧表示し、ファイルを新しい名前でダウンロードして、古いファイルと新しいファイルを比較できるようにします。The example then lists the blobs in the container and downloads the file with a new name so that you can compare the old and new files.

blob-quickstart-v12.py ファイルが格納されているディレクトリに移動し、次の python コマンドを実行してアプリを実行します。Navigate to the directory containing the blob-quickstart-v12.py file, then execute the following python command to run the app.

python blob-quickstart-v12.py

アプリの出力は、次の例のようになります。The output of the app is similar to the following example:

Azure Blob storage v12 - Python quickstart sample

Uploading to Azure Storage as blob:
        quickstartcf275796-2188-4057-b6fb-038352e35038.txt

Listing blobs...
        quickstartcf275796-2188-4057-b6fb-038352e35038.txt

Downloading blob to
        ./data/quickstartcf275796-2188-4057-b6fb-038352e35038DOWNLOAD.txt

Press the Enter key to begin clean up

Deleting blob container...
Deleting the local source and downloaded files...
Done

クリーンアップ プロセスを開始する前に、 [ドキュメント] フォルダー内の 2 つのファイルをチェックします。Before you begin the clean up process, check your Documents folder for the two files. それらを開いて、同じであるかどうかを確認します。You can open them and observe that they are identical.

ファイルを確認した後、Enter キーを押してテスト ファイルを削除し、デモを終了します。After you've verified the files, press the Enter key to delete the test files and finish the demo.

次のステップNext steps

このクイックスタートでは、Python を使用して BLOB をアップロード、ダウンロード、一覧表示する方法について説明しました。In this quickstart, you learned how to upload, download, and list blobs using Python.

BLOB ストレージのサンプル アプリを確認するには、以下に進んでください。To see Blob storage sample apps, continue to: