Работа с корневым контейнером

Корневой контейнер является контейнером по умолчанию для вашей учетной записи хранилища. Учетная запись хранилища может иметь один корневой контейнер. Корневой контейнер должен быть явно создан и иметь имя $root.

К большим двоичным объектам, хранящимся в корневом контейнере, можно обращаться без указания имени корневого контейнера. Таким образом, можно обращаться к большому двоичному объекту на высшем уровне иерархии учетной записи хранения. Например, теперь вы можете обратиться к 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-объектов в корневом контейнере корневой контейнер не отображается в URL-адресах ресурсов для возвращаемых BLOB-объектов. В синтаксисе следующего запроса показан способ вызова 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  

Перечисление BLOB-объектов в контейнере с именем mycontainer:

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  

Чтение BLOB-объекта с именем myfile из контейнера с именем mycontainer:

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

Чтение BLOB-объекта с именем myphoto из корневого контейнера:

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-объекта после завершающей косой черты. Запрос сформирован неправильно из-за отсутствующего имени большого двоичного объекта.

Следующий URL-адрес действителен для операции с BLOB-объектом в корневом контейнере:

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

Операции PUT

Создание контейнера с именем mycontainer:

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

Создание BLOB-объекта с именем myblob в корневом контейнере:

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

Можно также явно определить корневой контейнер:

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

Создание BLOB-объекта с именем myblob в контейнере mycontainer:

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

Создание BLOB-объекта с именем photos/myphoto в контейнере mycontainer:

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

Задание метаданных в BLOB-объекте myblob в корневом контейнере:

  
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  

См. также:

Операции HTTP в ресурсах службы BLOB-объектов
Именование контейнеров, больших двоичных объектов и метаданных и ссылка на них
Управление версиями для служб хранилища Azure