Java を使用して BLOB コンテナーを作成する

Azure Storage 内の BLOB はコンテナーにまとめられます。 BLOB をアップロードする前には、まずコンテナーを作成する必要があります。 この記事では、Java 用の Azure Storage クライアント ライブラリを使ってコンテナーを作成する方法について説明します。

前提条件

  • この記事では、Java 用の Azure Blob Storage クライアント ライブラリを操作するための設定が済んだプロジェクトが、既にあることを前提としています。 パッケージのインストール、import ディレクティブの追加、認可されたクライアント オブジェクトの作成など、プロジェクトの設定については、「Azure Storage と Java での作業開始」を参照してください。
  • 認可メカニズムには、BLOB コンテナーを作成するためのアクセス許可が必要です。 詳細については、次の REST API 操作の認可ガイダンスを参照してください。

コンテナーの名前付けについて

コンテナー名は、コンテナーまたはその BLOB をアドレス指定するために使用される一意の URI の一部になるため、有効な DNS 名である必要があります。 コンテナーに名前を付けるときは、次の規則に従います。

  • コンテナー名の長さは 3 ~ 63 文字にする必要があります。
  • コンテナー名は英文字または数字で始まり、英小文字、数字、ダッシュ (-) 文字のみを含めることができます。
  • 連続するダッシュ文字は、コンテナー名には使用できません。

コンテナー リソースの URI は、次のような書式になります。

https://my-account-name.blob.core.windows.net/my-container-name

コンテナーを作成する

コンテナーを作成するには、BlobServiceClient クラスから次のいずれかのメソッドを呼び出します。

また、以下に示す BlobContainerClient クラスのメソッドのいずれかを使ってコンテナーを作成することもできます。

コンテナーは、ストレージ アカウントの直下に作成されます。 コンテナーを別のコンテナーの下に入れ子にすることはできません。 create および createBlobContainer メソッドでは、同じ名前のコンテナーが既に存在する場合、例外がスローされます。

次の例では、BlobServiceClient オブジェクトからコンテナーを作成します。

public BlobContainerClient createContainer(BlobServiceClient blobServiceClient, String containerName) {
    // Create the container using the service client object
    BlobContainerClient blobContainerClient = blobServiceClient.createBlobContainer(containerName);

    return blobContainerClient;
}

ルート コンテナーを作成する

ルート コンテナーは、ストレージ アカウントの既定のコンテナーとして機能します。 各ストレージ アカウントには、 $root. という名前のルート コンテナーを 1 つ含めることができます。 ルート コンテナーは明示的に作成または削除する必要があります。

ルート コンテナーに格納されている BLOB は、ルート コンテナー名を指定せずに参照できます。 ルート コンテナーを使用すると、ストレージ アカウント階層の最上位レベルにある BLOB を参照できます。 たとえば、ルート コンテナー内に存在する BLOB は、次の方法で参照できます。

https://accountname.blob.core.windows.net/default.html

次の例では、コンテナー名 $root を持つ新しい BlobContainerClient オブジェクトを作成し、ストレージ アカウントにまだ存在しない場合はコンテナーを作成します。

public void createRootContainer(BlobServiceClient blobServiceClient) {
    // Creates a new BlobContainerClient object by appending the containerName to
    // the end of the URI
    BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient("$root");

    // If the container does not already exist, create it using the container client
    blobContainerClient.createIfNotExists();
}

リソース

Java 用のAzure Blob Storage クライアント ライブラリを使用したコンテナーの作成の詳細については、次のリソースを参照してください。

REST API の操作

Azure SDK for Java には Azure REST API に基づき構築されたライブラリが含まれるため、使い慣れた Java パラダイムを通じて REST API 操作を実施できます。 コンテナーを作成するためのクライアント ライブラリ メソッドは、次の REST API 操作を使用します。

コード サンプル

クライアント ライブラリのリソース