使用 TypeScript 创建 Blob 容器

Azure 存储中的 Blob 已组织成容器。 必须先创建容器,才能上传 Blob。 本文介绍了如何使用适用于 JavaScript 的 Azure 存储客户端库来创建容器。

先决条件

  • 本文中的示例假设你已经设置了一个项目来使用适用于 JavaScript 的 Azure Blob 存储客户端库。 若要了解如何设置项目(包括安装包、导入模块,以及创建授权客户端对象来使用数据资源),请参阅开始使用 Azure Blob 存储和 TypeScript
  • 授权机制必须具有创建 blob 容器的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南:

关于容器命名

容器名称必须是有效的 DNS 名称,因为它是用于对容器或其 Blob 寻址的唯一 URI 的一部分。 为容器命名时,请遵循以下规则:

  • 容器名称的长度可以是 3 到 63 个字符。
  • 容器名称必须以字母或数字开头,并且只能包含小写字母、数字和短划线 (-) 字符。
  • 容器名称中不允许出现连续的短划线字符。

容器资源的 URI 的格式如下:

https://my-account-name.blob.core.chinacloudapi.cn/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;
}

了解根容器

根容器(具有特定名称 $root)允许引用位于存储帐户层次结构顶层的 Blob。 例如,可以在不使用 URI 中容器名称的情况下引用 blob。

https://myaccount.blob.core.chinacloudapi.cn/default.html

必须显式创建或删除根容器。 默认情况下,它不会在服务创建过程中创建。 上一节中显示的相同代码可以创建根容器。 容器名称为 $root

资源

若要详细了解如何使用适用于 JavaScript 的 Azure Blob 存储客户端库创建容器,请参阅以下资源。

REST API 操作

Azure SDK for JavaScript 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 JavaScript 范例与 REST API 操作进行交互。 用于创建容器的客户端库方法使用以下 REST API 操作:

代码示例