Create Container

A operação Create Container cria um novo contêiner sob a conta especificada. Se o contêiner com o mesmo nome já existir, a operação falhará.

O recurso do contêiner inclui os metadados e as propriedades desse contêiner. Ele não inclui uma lista dos blobs no contêiner.

Solicitação

Você pode construir a solicitação Create Container conforme mostrado aqui. Recomendamos que você use HTTPS. O nome do contêiner pode incluir apenas caracteres minúsculos e precisa seguir essas regras de nomenclatura. Na URL, substitua myaccount pelo nome da sua conta de armazenamento.

Método URI da solicitação Versão HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1

Solicitação de serviço de armazenamento emulado

Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome do host do emulador e a porta do Armazenamento de Blobs como 127.0.0.1:10000, seguido pelo nome da conta de armazenamento emulado.

Método URI da solicitação Versão HTTP
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container HTTP/1.1

Para obter mais informações, consulte Usar o emulador Azurite para desenvolvimento local do armazenamento do Azure.

Parâmetros do URI

Você pode especificar os seguintes parâmetros adicionais no URI de solicitação.

Parâmetro Descrição
timeout Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Definir tempos limite para operações de Armazenamento de Blobs.

Cabeçalhos da solicitação

Os cabeçalhos de solicitação obrigatórios e opcionais são descritos na tabela a seguir:

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica a hora do Tempo Universal Coordenado (UTC) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Necessário para todas as solicitações autorizadas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
x-ms-meta-name:value Opcional. Um par de nome-valor a ser associado ao contêiner como metadados. Observação: a partir da versão 2009-09-19, os nomes de metadados devem seguir as regras de nomenclatura para identificadores C#.
x-ms-blob-public-access Opcional. Especifica se os dados no contêiner podem ser acessados publicamente e o nível de acesso. Os valores possíveis incluem:

- container: especifica o acesso de leitura público completo para dados de contêiner e blob. Os clientes podem enumerar blobs dentro do contêiner por meio de solicitação anônima, mas não podem enumerar contêineres dentro da conta de armazenamento.
- blob: Especifica o acesso de leitura público para blobs. Os dados de blob dentro desse contêiner podem ser lidos por meio de solicitação anônima, mas os dados do contêiner não estão disponíveis. Os clientes não podem enumerar blobs dentro do contêiner por meio de solicitação anônima.

Se esse cabeçalho não estiver incluído na solicitação, os dados do contêiner serão privados para o proprietário da conta.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) registrado nos logs do Azure Monitor quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar Armazenamento de Blobs do Azure.

Cabeçalhos de solicitação (escopos de criptografia)

A partir da versão 2019-02-02, você pode especificar os cabeçalhos a seguir em uma solicitação para definir um escopo de criptografia padrão em um contêiner. Se você definir um escopo de criptografia, ele será usado automaticamente para criptografar todos os blobs carregados no contêiner.

Cabeçalho da solicitação Descrição
x-ms-default-encryption-scope Obrigatórios. O escopo de criptografia a ser definido como o padrão no contêiner.
x-ms-deny-encryption-scope-override Obrigatórios. Os valores são true ou false. Definir esse cabeçalho para true garantir que cada blob carregado neste contêiner use o escopo de criptografia padrão. Quando esse cabeçalho é false, um cliente pode carregar um blob com um escopo de criptografia diferente do escopo padrão.

Corpo da solicitação

Nenhum.

Solicitação de exemplo

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=  

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 201 (Criado).

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

A resposta para essa operação inclui os cabeçalhos descritos na tabela a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
ETag A ETag do contêiner. Se a versão da solicitação for 2011-08-18 ou posterior, o valor ETag será colocado entre aspas.
Last-Modified Retorna a data e a hora em que o contêiner foi modificado pela última vez. O formato da data segue RFC 1123. Para obter mais informações, consulte Representação de valores de data/hora em cabeçalhos.

Qualquer operação que modifique o contêiner, suas propriedades ou metadados atualiza a hora da última modificação. As operações em blobs não afetam a hora da última modificação do contêiner.
x-ms-request-id Identifica exclusivamente a solicitação que foi feita. Você pode usá-lo para solucionar problemas da solicitação. Para obter mais informações, consulte Solucionar problemas de operações de API
x-ms-version Indica a versão do Armazenamento de Blobs usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 ou posterior.
Date O valor de data/hora UTC gerado pelo serviço, que indica a hora em que a resposta foi iniciada.
x-ms-client-request-id Pode ser usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho será igual ao valor do x-ms-client-request-id cabeçalho se ele estiver presente na solicitação e o valor não contiver mais de 1024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, o cabeçalho não estará presente na resposta.

Corpo da resposta

Nenhum.

Resposta de exemplo

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  

Autorização

A autorização é necessária ao chamar qualquer operação de acesso a dados no Armazenamento do Azure. Você pode autorizar a Create Container operação, conforme descrito abaixo.

No Armazenamento do Azure, é possível usar o Azure AD (Azure Active Directory) para autorizar solicitações de dados de blob. Com Azure AD, você pode usar o RBAC do Azure (controle de acesso baseado em função) do Azure para conceder permissões a uma entidade de segurança. A entidade de segurança pode ser um usuário, grupo, entidade de serviço de aplicativo ou identidade gerenciada do Azure. A entidade de segurança é autenticada pelo Azure AD para retornar um token OAuth 2.0. Em seguida, o token pode ser usado para autorizar uma solicitação no serviço de Blob.

Para saber mais sobre a autorização usando Azure AD, consulte Autorizar o acesso a blobs usando o Azure Active Directory.

Permissões

Veja abaixo a ação RBAC necessária para que um usuário, grupo ou entidade de serviço Azure AD chame a Create Container operação e a função RBAC interna do Azure com menos privilégios que inclua esta ação:

Para saber mais sobre como atribuir funções usando o RBAC do Azure, confira Atribuir uma função do Azure para acesso aos dados de blob.

Comentários

Os contêineres são criados imediatamente na conta de armazenamento. Não é possível aninhar um contêiner dentro de outro.

Se desejar, você poderá criar um contêiner padrão ou raiz para a conta de armazenamento. O contêiner raiz permite referenciar um blob do nível superior da hierarquia de contas de armazenamento, sem referenciar o nome do contêiner.

Para adicionar o contêiner raiz à sua conta de armazenamento, crie um contêiner denominado $root. Construa a solicitação da seguinte forma:

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=  

Você pode especificar metadados para um contêiner ao criá-lo incluindo um ou mais cabeçalhos de metadados na solicitação. O formato do cabeçalho de metadados é x-ms-meta-name:value.

Se um contêiner com o mesmo nome estiver sendo excluído quando Create Container for chamado, o servidor retornará o código de status 409 (Conflito) e fornecerá informações de erro adicionais que indicam que o contêiner está sendo excluído.

Confira também

Autorizar solicitações para o Armazenamento do Azure
Status e códigos de erro
Códigos de erro do Armazenamento de Blobs
Contêineres de nome e referência, blobs e metadados
Definir e recuperar propriedades e metadados para recursos de blob
Definir ACL do contêiner