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 гарантирует, что каждый BLOB-объект, отправляемый в этот контейнер, будет использовать область шифрования по умолчанию. Если этот заголовок имеет значение 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 для контейнера. Если версия запроса — 18.08.2011 или более поздняя, значение 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
как описано ниже.
Важно!
Корпорация Майкрософт рекомендует использовать Microsoft Entra ID с управляемыми удостоверениями для авторизации запросов к службе хранилища Azure. Microsoft Entra ID обеспечивает более высокий уровень безопасности и простоту использования по сравнению с авторизацией с общим ключом.
Служба хранилища 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:Microsoft.Storage/storageAccounts/blobServices/containers/write
- Встроенная роль с минимальными привилегиями:Участник данных BLOB-объектов хранилища
Дополнительные сведения о назначении ролей с помощью 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 |
Операции перечисления и Create контейнеров |
Дополнительные сведения о ценах на указанную категорию выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.
См. также раздел
Авторизация запросов к службе хранилища Azure
Коды состояний и ошибок
Коды ошибок хранилища BLOB-объектов
Имена и ссылки на контейнеры, большие двоичные объекты и метаданные
Установка и извлечение свойств и метаданных для ресурсов BLOB-объектов
Set Container ACL