TypeScript を使って BLOB コンテナーを作成する

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

前提条件

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

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

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

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

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

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

コンテナーを作成する

コンテナーを作成するには、BlobServiceClient オブジェクトまたは ContainerClient オブジェクトを作成し、次のいずれかの create メソッドを使用します。

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

次の例では、BlobServiceClient から非同期的にコンテナーを作成します。

async function createContainer(
  blobServiceClient: BlobServiceClient,
  containerName: string
): Promise<ContainerClient> {
  // public access at container level
  const options: ContainerCreateOptions = {
    access: 'container'
  };

  // creating client also creates container
  const {
    containerClient,
    containerCreateResponse
  }: {
    containerClient: ContainerClient;
    containerCreateResponse: ContainerCreateResponse;
  } = await blobServiceClient.createContainer(containerName, options);

  if (containerCreateResponse.errorCode)
    throw Error(containerCreateResponse.errorCode);

  console.log(`container ${containerName} created`);

  // do something with container
  // ...
  // containerClient.listBlobsFlat({    includeMetadata: true,
  // includeSnapshots: false,
  // includeTags: true,
  // includeVersions: false,
  // prefix: ''});

  return containerClient;
}

ルート コンテナーについて

ストレージ アカウント階層の最上位レベルにある BLOB は、$root という特定の名前のルート コンテナーで参照できます。 たとえば、"URI でコンテナー名を使用しなくても" BLOB を参照できます。

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

ルート コンテナーは明示的に作成または削除する必要があります。 サービス作成の一環として既定で作成されるわけではありません。 前のセクションに示した同じコードでルートを作成できます。 コンテナーの名前は $root です。

リソース

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

REST API の操作

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

コード サンプル