Поделиться через


Создать контейнер

Операция 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 запроса можно указать следующие дополнительные параметры.

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

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

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

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

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

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

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

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

Это важно

Если для контейнера x-ms-deny-encryption-scope-override задано значение true, обновления больших двоичных объектов, которые не имеют области шифрования или ключи шифрования, предоставленные клиентом, не разрешены в этом контейнере. Эти BLOB-объекты остаются читаемыми, и пользователи могут перемещать BLOB-объекты из контейнера в один без политики переопределения области шифрования для выполнения обновлений.

Основное содержание запроса

Нет.

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

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.

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

Любая операция, которая изменяет контейнер, его свойства или метаданные, обновляется с момента последнего изменения. Операции с большими двоичными объектами не влияют на время последнего изменения контейнера.
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  

Authorization

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

Это важно

Корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к службе хранилища Azure. Microsoft Entra ID обеспечивает превосходную безопасность и простоту использования по сравнению с авторизацией с помощью общего ключа.

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

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

Permissions

Ниже перечислены действия RBAC, необходимые для вызова Create Container операции пользователем, группой, управляемым удостоверением или субъектом-службой Microsoft Entra, а также встроенная роль 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 запросов в зависимости от типа учетной записи хранения:

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

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

См. также

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