你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用根容器

根容器充当存储帐户的默认容器。 存储帐户可具有一个根容器。 必须显式创建根容器并将其命名为 $root

可在不引用根容器名称的情况下对存储在根容器中的 Blob 进行寻址,这样一来,便能在存储帐户层次结构的顶部对 Blob 进行寻址。 例如,可通过以下方式引用驻留在根容器中的 Blob:

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

管理根容器

若要将根容器与存储帐户配合使用,请创建名为 $root 的新容器。 以下示例请求演示如何创建根容器:

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/$root?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
x-ms-blob-public-access: container  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

如果不再需要使用根容器,你也可以将其删除。

与其他容器一样,可将根容器用于匿名公共访问。 可以通过在创建容器时设置 x-ms-blob-public-access 标头或在容器已存在后调用 Set Container ACL 来公开容器。 有关详细信息,请参阅限制对容器和 Blob 的访问

如果根容器存在,则当你对存储帐户执行 “列出容器” 操作时,会显示该根容器。

对根容器执行 “列出 Blob” 操作时,根容器不会显示在返回的 Blob 的资源 URL 中。 以下请求语法说明了如何针对根容器调用List Blobs

GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list HTTP/1.1  

重要

根容器中的 Blob 不能在名称中包含正斜杠 (/)。

示例

以下示例说明了如何处理容器和 Blob 资源,包括根容器:

GET 操作

要列出存储帐户中的容器,请执行以下命令:

GET https://myaccount.blob.core.windows.net/?comp=list  

要获取容器的属性,请执行以下命令:

GET/HEAD https://myaccount.blob.core.windows.net/mycontainer?restype=container  

要列出名为 mycontainer 的容器中的 Blob,请执行以下命令:

GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list  

要列出根容器中的 Blob,请执行以下命令:

GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list  

要从名为 myfile 的容器中读取名为 mycontainer 的 Blob,请执行以下命令:

GET https://myaccount.blob.core.windows.net/mycontainer/myfile  

要从根容器中读取名为 myphoto 的 Blob,请执行以下命令:

GET https://myaccount.blob.core.windows.net/myphoto  

还可以显式引用根容器:

GET https://myaccount.blob.core.windows.net/$root/myphoto  

要读取根容器中的 Blob 上的 Blob 元数据,请执行以下命令:

GET https://myaccount.blob.core.windows.net/myphoto?comp=metadata  

还可以显式引用根容器:

GET https://myaccount.blob.core.windows.net/$root/myphoto?comp=metadata  

注意

在引用根容器中的 Blob 时,请注意避免包含尾随正斜杠 (/)。 例如,类似下面的 URL 现在将导致返回状态代码 400(错误的请求):

https://myaccount.blob.core.windows.net/myblob/

在上面的示例中,Blob 服务将容器名称读取为 myblob,并且尾随斜杠后面应包含 Blob 名称。 由于缺少 Blob 名称,请求的格式出错。

以下 URL 对根容器中的 Blob 上的操作有效:

https://myaccount.blob.core.windows.net/myblob

PUT 操作

要创建名为 mycontainer 的容器,请执行以下命令:

  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container  

要在根容器中创建名为 myblob 的 Blob,请执行以下命令:

  
PUT https://myaccount.blob.core.windows.net/myblob  

也可以显式指定根容器:

  
PUT https://myaccount.blob.core.windows.net/$root/myblob  

在名为 的 myblob 容器中创建名为 的 mycontainerBlob:

PUT https://myaccount.blob.core.windows.net/mycontainer/myblob  

在名为 的 photos/myphoto 容器中创建名为 的 mycontainerBlob:

PUT https://myaccount.blob.core.windows.net/mycontainer/photos/myphoto  

要设置根容器中名为 myblob 的 Blob 上的元数据,请执行以下命令:

  
PUT https://myaccount.blob.core.windows.net/myblob?comp=metadata  

DELETE 操作

要删除名为 mycontainer 的容器,请执行以下命令:

  
DELETE https://myaccount.blob.core.windows.net/mycontainer?restype=container  

要删除根容器,请执行以下命令:

  
DELETE https://myaccount.blob.core.windows.net/$root?restype=container  

要从根容器中删除 Blob myblob,请执行以下命令:

  
DELETE https://myaccount.blob.core.windows.net/myblob  

也可以显式指定根容器:

  
DELETE https://myaccount.blob.core.windows.net/$root/myblob  

另请参阅

对 Blob 服务资源的 HTTP 操作
命名和引用容器、Blob 与元数据
Azure 存储服务的版本控制