Exportar (0) Imprimir
Expandir Tudo

Nomeando e referenciando contêineres, blobs e metadados

Atualizado: novembro de 2014

Este tópico descreve como nomear e fazer referência a contêineres, blobs, metadados e instantâneos. Uma conta de armazenamento pode conter zero ou mais contêineres. Um contêiner contém propriedades, metadados e zero ou mais blobs. Um blob é qualquer entidade única composta de dados binários, propriedades e metadados.

O URI para fazer referência a um contêiner ou um blob deve ser exclusivo. Como cada nome de conta é exclusivo, duas contas podem ter contêineres com o mesmo nome. No entanto, em uma determinada conta de armazenamento, cada contêiner deve ter um nome exclusivo. Cada blob em um determinado contêiner também deve ter um nome exclusivo dentro do contêiner em questão.

Se você tentar criar um contêiner ou blob com um nome que viole as regras de nomenclatura, a solicitação falhará com o código de status 400 (Solicitação Incorreta).

ImportantImportante
Os nomes de contêiner e blob são transmitidos ao serviço Blob em um URL. Determinados caracteres devem ser codificados por porcentagem para aparecerem em uma URL, usando UTF-8 (preferencial) ou MBCS. Essa codificação ocorre automaticamente quando você usa as Bibliotecas .NET do Windows Azure ou cria um objeto Uri que inclui um nome de contêiner ou blob. No entanto, há determinados caracteres que não são válidos em caminhos URL mesmo quando codificados. Esses caracteres não podem aparecer em nomes de contêiner ou blob. Os pontos de código, como \uE000, quando válidos em nomes de arquivo NTFS, não são caracteres Unicode válidos, de modo que não podem ser usados. Além disso, alguns caracteres ASCII ou Unicode, como caracteres de controle (0x00 a 0x1F, \u0081, etc.), também não são permitidos. Para regras que administram cadeias de caracteres Unicode em HTTP/1.1, consulte:

Um nome de contêiner deve ser um nome DNS válido e deve estar em conformidade com as seguintes regras de nomenclatura:

  1. Os nomes de contêiner devem começar com uma letra ou um número e podem conter somente letras, números e traços (-).

  2. Cada caractere de traço (-) deve ser precedido e seguido por uma letra ou um número. Traços consecutivos não são permitidos em nomes de contêiner.

  3. Todas as letras em um nome de contêiner devem ser minúsculas.

  4. Os nomes de contêiner devem ter de 3 a 63 caracteres.

Um nome de blob deve obedecer às seguintes regras de nomeação:

  • Um nome de blob deve conter qualquer combinação de caracteres.

  • Um nome de blob deve ter pelo menos um caractere e não mais de 1.024 caracteres.

  • Os nomes de blob diferenciam maiúsculas de minúsculas.

  • Os caracteres reservados de URL devem ser corretamente seguidos por caracteres de escape.

noteObservação
Evite nomes de blob que terminem com um ponto (.), uma barra (/), ou uma sequência ou combinação dos dois.

O serviço Blob tem como base um esquema de armazenamento simples, e não um esquema hierárquico. No entanto, você pode especificar um delimitador de caractere ou cadeia de caracteres em um nome de blob para criar uma hierarquia virtual. Por exemplo, a lista a seguir mostra nomes de blob válidos e exclusivos. Observe que uma cadeia de caracteres pode ser válida como um nome de blob e como um nome de diretório virtual no mesmo contêiner:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Você pode se beneficiar do caractere delimitador ao enumerar blobs.

Os metadados de um contêiner ou recurso de blob são armazenados como pares de nome/valor associados ao recurso. Os nomes de metadados devem seguir as regras de nomenclatura para identificadores C#.

Observe que os nomes de metadados preservam a forma com a qual foram criados, mas não diferenciam maiúsculas de minúsculas quando definidos ou lidos. Se dois ou mais cabeçalhos de metadados com o mesmo nome forem enviados para um recurso, o serviço Blob retornará o código de status 400 (Solicitação Incorreta).

Cada recurso tem um URI base correspondente, que se refere ao próprio recurso.

Para a conta de armazenamento, o URI base inclui apenas o nome da conta:

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

Para um contêiner, o URI base inclui o nome da conta e o nome do contêiner:

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

Para um blob, o URI base inclui o nome da conta, o nome do contêiner e o nome do blob:

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

Uma conta de armazenamento pode ter um contêiner raiz, um contêiner padrão que pode ser omitido do URI. Um blob no contêiner raiz pode ser referenciado sem nomear o contêiner, ou o contêiner raiz pode ser referenciado explicitamente por seu nome ($root). Consulte Trabalho com o contêiner raiz (API REST) para mais informações. Os URIs a seguir fazem referência a um blob no contêiner raiz:


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

Um instantâneo é uma versão somente leitura de um blob armazenado como ele estava no momento em que o instantâneo foi criado. Você pode usar instantâneos para criar um backup ou ponto de verificação de um blob. Um nome de blob de instantâneo inclui o URI do blob base, mais o valor de data e hora que indica quando o instantâneo foi criado.

Por exemplo, suponha que um blob tenha o seguinte URI:

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

O URI para um instantâneo desse blob é formado como se segue:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

A biblioteca do cliente .NET pode listar instantâneos como objetos CloudBlob quando você chama ListBlobs com BlobListingDetails definido como Snapshots.

Consulte também

A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft