Create Container (Создание контейнера)

Операция Create Container создает новый контейнер для указанной учетной записи. Если контейнер с таким именем уже существует, операция завершается ошибкой.

Ресурс контейнера содержит метаданные и свойства для данного контейнера. Он не содержит список больших двоичных объектов в контейнере.

Запрос

Запрос можно создать, Create Container как показано здесь. Рекомендуется использовать ПРОТОКОЛ HTTPS. Имя контейнера может содержать только символы нижнего регистра и должно соответствовать этим правилам именования. В URL-адресе замените myaccount именем своей учетной записи хранения.

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1

Запрос службы эмулированного хранилища

При выполнении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт хранилища BLOB-объектов в качестве 127.0.0.1:10000, а затем имя эмулированной учетной записи хранения.

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container HTTP/1.1

Дополнительные сведения см. в статье Использование эмулятора Azurite для разработки и тестирования службы хранилища Azure.

Параметры универсального кода ресурса (URI)

В URI запроса можно указать следующие дополнительные параметры.

Параметр Описание
timeout Необязательный элемент. Параметр timeout указывается в секундах. Дополнительные сведения см. в разделе Настройка времени ожидания для операций с хранилищем BLOB-объектов.

Заголовки запросов

Обязательные и необязательные заголовки запросов описаны в следующей таблице:

Заголовок запроса Описание
Authorization Обязательный. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
Date или x-ms-date Обязательный. Задает время в формате UTC для запроса. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
x-ms-version Требуется для всех авторизованных запросов. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-meta-name:value Необязательный элемент. Пары «имя-значение», которые будут связаны с контейнером как метаданные. Примечание. Начиная с версии 2009-09-19 имена метаданных должны соответствовать правилам именования для идентификаторов C#.
x-ms-blob-public-access Необязательный элемент. Указывает, можно ли получить общий доступ к данным в контейнере и уровень доступа. Возможные значения:

- container: указывает полный общий доступ на чтение для данных контейнера и больших двоичных объектов. Клиенты могут перечислять большие двоичные объекты в контейнере с помощью анонимного запроса, но не могут перечислять контейнеры в учетной записи хранения.
- blob: Указывает общий доступ на чтение для BLOB-объектов. Данные BLOB-объектов в этом контейнере можно считывать с помощью анонимного запроса, но данные контейнера недоступны. Клиенты не могут перечислять большие двоичные объекты в контейнере с помощью анонимного запроса.

Если этот заголовок не включен в запрос, данные контейнера являются частными для владельца учетной записи.
x-ms-client-request-id Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в разделе Мониторинг Хранилище BLOB-объектов Azure.

Заголовки запросов (области шифрования)

Начиная с версии 2019-02-02, вы можете указать следующие заголовки в запросе, чтобы задать область шифрования по умолчанию в контейнере. Если задать область шифрования, он автоматически используется для шифрования всех BLOB-объектов, отправленных в контейнер.

Заголовок запроса Описание
x-ms-default-encryption-scope Обязательный. Область шифрования, который следует задать в качестве значения по умолчанию для контейнера.
x-ms-deny-encryption-scope-override Обязательный. Значения: true или false. Если задать для этого заголовка значение , true каждый большой двоичный объект, отправленный в этот контейнер, будет использовать область шифрования по умолчанию. Если этот заголовок имеет значение false, клиент может отправить большой двоичный объект с область шифрования, отличный от область по умолчанию.

Текст запроса

Нет.

Пример запроса

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?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  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

Ответ

Ответ включает код состояния HTTP и набор заголовков ответа.

Код состояния

Успешная операция возвращает код состояния 201 (создано).

Сведения о кодах состояния см. в разделе Коды состояния и ошибок.

Заголовки ответов

Ответ для этой операции включает заголовки, описанные в следующей таблице. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок ответа Описание
ETag ETag для контейнера. Если версия запроса — 2011-08-18 или более поздняя, значение ETag заключается в кавычки.
Last-Modified Возвращает дату и время последнего изменения контейнера. Дата в формате согласно RFC 1123. Дополнительные сведения см. в разделе Представление значений даты и времени в заголовках.

Любая операция, которая изменяет контейнер или его свойства или обновляет время последнего изменения. Операции с BLOB-объектами не влияют на время последнего изменения контейнера.
x-ms-request-id Однозначно идентифицирует выполненный запрос. Его можно использовать для устранения неполадок с запросом. Дополнительные сведения см. в статье Устранение неполадок с операциями API.
x-ms-version Указывает версию хранилища BLOB-объектов, используемую для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 или более поздней.
Date Значение даты и времени в формате UTC, созданное службой, которое указывает время, когда был инициирован ответ.
x-ms-client-request-id Может использоваться для устранения неполадок с запросами и соответствующими ответами. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе, и значение содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, заголовок не будет присутствовать в ответе.

Текст ответа

Нет.

Пример ответа

Response status:  
HTTP/1.1 201 Created  
  
Response headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 23:00:12 GMT  
ETag: “0x8CB14C3E29B7E82”  
Last-Modified: Sun, 25 Sep 2011 23:00:06 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Авторизация

Авторизация требуется при вызове любой операции доступа к данным в службе хранилища Azure. Вы можете авторизовать операцию, Create Container как описано ниже.

Служба хранилища Azure поддерживает использование Microsoft Entra ID для авторизации запросов к данным BLOB-объектов. С помощью Microsoft Entra ID можно использовать управление доступом на основе ролей Azure (Azure RBAC) для предоставления разрешений субъекту безопасности. Субъектом безопасности может быть пользователь, группа, субъект-служба приложения или управляемое удостоверение Azure. Субъект безопасности проходит проверку подлинности Microsoft Entra ID для возврата маркера OAuth 2.0. Затем маркер можно использовать для авторизации запроса к службе BLOB-объектов.

Дополнительные сведения об авторизации с помощью Microsoft Entra ID см. в статье Авторизация доступа к BLOB-объектам с помощью Microsoft Entra ID.

Разрешения

Ниже перечислены действия RBAC, необходимые Microsoft Entra пользователю, группе или субъекту-службе для вызова Create Container операции, а также встроенная роль Azure RBAC с минимальными привилегиями, которая включает это действие:

Дополнительные сведения о назначении ролей с помощью Azure RBAC см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.

Комментарии

Контейнеры создаются непосредственно в учетной записи хранения. Невозможно вложить один контейнер в другой.

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

Чтобы добавить корневой контейнер к учетной записи хранилища, создайте контейнер с именем $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  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

Вы можете указать метаданные для контейнера при его создании, включив в запрос один или несколько заголовков метаданных. Формат для заголовка метаданных — x-ms-meta-name:value.

Если при Create Container вызове удаляется контейнер с таким же именем, сервер возвращает код состояния 409 (конфликт) и предоставляет дополнительные сведения об ошибке, указывающие на то, что контейнер удаляется.

Выставление счетов

Запросы на ценообразование могут поступать от клиентов, использующих API хранилища BLOB-объектов, напрямую через REST API хранилища BLOB-объектов или из клиентской библиотеки службы хранилища Azure. Эти запросы начисляют плату за транзакцию. Тип транзакции влияет на способ оплаты учетной записи. Например, транзакции чтения начисляются к категории выставления счетов, отличной от категории операций записи. В следующей таблице показана категория выставления счетов для Create Container запросов на основе типа учетной записи хранения.

Операция Тип учетной записи хранения Категория выставления счетов
Create Container (Создание контейнера) Блочный BLOB-объект (ценовая категории "Премиум")
Общего назначения версии 2 (цен. категория "Стандартный")
Стандартная общего назначения версии 1
Операции с перечислением и созданием контейнеров

Дополнительные сведения о ценах на указанную категорию выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.

См. также раздел

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