Nomenclatura e Referência a Contentores, Blobs e Metadados

Este tópico descreve a nomenclatura e referência a contentores, blobs, metadados e instantâneos. Uma conta de armazenamento pode conter zero ou mais contentores. Um contentor contém propriedades, metadados e zero ou mais blobs. Se a sua conta tiver um espaço de nomes hierárquico, um contentor também pode conter zero ou mais diretórios e esses diretórios podem conter zero ou mais blobs. Um blob é qualquer entidade individual composta por dados binários, propriedades e metadados.

Nomes de Recursos

O URI para referenciar um contentor ou um blob tem de ser exclusivo. Uma vez que cada nome de conta é exclusivo, duas contas podem ter contentores com o mesmo nome. No entanto, dentro de uma determinada conta de armazenamento, cada contentor tem de ter um nome exclusivo. Todos os blobs dentro de um determinado contentor também têm de ter um nome exclusivo nesse contentor.

Se tentar criar um contentor ou blob com um nome que viole as regras de nomenclatura, o pedido falhará com o código de estado 400 (Pedido Incorreto).

Os nomes de blobs e contentores são transmitidos para o serviço Blob num URL. Determinados carateres têm de estar codificados por percentagem para aparecerem num URL, utilizando UTF-8 (preferencial) ou MBCS. Esta codificação ocorre automaticamente quando utiliza as bibliotecas de cliente do Armazenamento do Azure. No entanto, existem determinados carateres que não são válidos nos caminhos de URL, mesmo quando codificados. Se estes carateres aparecerem em nomes de blobs ou contentores, o pedido poderá falhar. Para obter uma lista destes carateres, veja Carateres Unicode não recomendados para utilização em nomes de contentores ou blobs.

Os pontos de código como \uE000, embora válidos em nomes de ficheiro NTFS, não são carateres Unicode válidos, pelo que não podem ser utilizados. Além disso, alguns carateres ASCII ou Unicode, como carateres de controlo (0x00 para 0x1F, \u0081, etc.), também não são permitidos.

Para regras adicionais que regem cadeias Unicode em HTTP/1.1, consulte RFC 2616, Secção 2.2: Regras Básicas e RFC 3987.

Nomes de Contentor

Um nome de contentor tem de ser um nome DNS válido, cumprindo as seguintes regras de nomenclatura:

  • Os nomes dos contentores têm de começar ou terminar com uma letra ou número e podem conter apenas letras, números e o caráter hífen/subtração (-).

  • Todos os carateres de hífen/subtração (-) têm de ser imediatamente precedidos e seguidos por uma letra ou número; os hífenes consecutivos não são permitidos em nomes de contentor.

  • Tenha em atenção que o nome do contentor tem de estar em minúsculas.

  • Os nomes de contentor devem ter entre 3 e 63 carateres.

Nomes de diretórios

Se a sua conta tiver um espaço de nomes hierárquico, um nome de diretório tem de estar em conformidade com as seguintes regras de nomenclatura:

  • Um nome de diretório pode conter qualquer combinação de carateres.

  • Um nome de diretório tem de ter, pelo menos, um caráter de comprimento e não pode ter mais de 1024 carateres.

  • Os nomes dos diretórios são sensíveis às maiúsculas e minúsculas.

  • Os carateres de URL reservados devem ser escritos corretamente.

Nota

Evite nomes de diretórios que terminem com um ponto (.), uma barra (/), uma barra invertida (\) ou uma sequência ou combinação dos dois. Nenhum segmento de caminho deve terminar com um ponto (.).

Captura de ecrã a mostrar a barra invertida não permitida.

Nomes de Blobs

Um nome de blob tem de estar em conformidade com as seguintes regras de nomenclatura. Estas regras aplicam-se também a blobs em contas com um espaço de nomes hierárquico, salvo indicação em contrário.

  • Um nome de blob pode conter qualquer combinação de carateres.

  • Um nome de blob tem de ter, pelo menos, um caráter de comprimento e não pode ter mais de 1024 carateres, para blobs no Armazenamento do Azure.

    O emulador do Armazenamento do Azure suporta nomes de blobs com até 256 carateres. Para obter mais informações, veja Utilizar o emulador de armazenamento do Azure para desenvolvimento e teste.

  • Os nomes dos blobs são sensíveis às maiúsculas e minúsculas.

  • Os carateres de URL reservados devem ser escritos corretamente.

  • Existem limitações no número de segmentos de caminho que incluem um nome de blob. Um segmento de caminho é a cadeia entre carateres delimitadores consecutivos (por exemplo, uma barra /) que corresponde ao diretório ou diretório virtual. As seguintes limitações do segmento de caminho aplicam-se aos nomes dos blobs:

    • Se a conta de armazenamento não tiver o espaço de nomes hierárquico ativado, o número de segmentos de caminho que incluem o nome do blob não pode exceder 254.
    • Se a conta de armazenamento tiver o espaço de nomes hierárquico ativado, o número de segmentos de caminho que incluem o nome do blob não pode exceder 63 (incluindo segmentos de caminho para o nome da conta e o nome do contentor).

Nota

Evite nomes de blobs que terminem com um ponto (.), uma barra (/), uma barra invertida (\) ou uma sequência ou combinação dos dois. Nenhum segmento de caminho deve terminar com um ponto (.).

Captura de ecrã a mostrar a barra de reencaminhamento não permitida.

Por predefinição, o serviço Blob baseia-se num esquema de armazenamento simples e não num esquema hierárquico. No entanto, pode especificar um delimitador de carateres ou cadeias dentro de um nome de blob para criar uma hierarquia virtual. Por exemplo, a lista seguinte mostra nomes de blobs válidos e exclusivos. Repare que uma cadeia de carateres pode ser válida como um nome de blob e como um nome de diretório virtual no mesmo contentor:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Pode tirar partido do caráter delimitador ao enumerar blobs.

Nomes de Metadados

Os metadados de um recurso de contentor ou blob são armazenados como pares nome-valor associados ao recurso. Os nomes de metadados têm de cumprir as regras de nomenclatura dos identificadores C#.

Tenha em atenção que os nomes de metadados preservam o caso com o qual foram criados, mas não são sensíveis a maiúsculas e minúsculas quando definidos ou lidos. Se forem submetidos dois ou mais cabeçalhos de metadados com o mesmo nome para um recurso, o serviço Blob devolve o código de estado 400 (Pedido Incorreto).

Sintaxe do URI do Recurso

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 contentor, o URI base inclui o nome da conta e o nome do contentor:

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

Para um blob, o URI base inclui o nome da conta, o nome do contentor e o nome do blob:

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

Uma conta de armazenamento pode ter um contentor de raiz, um contentor predefinido que pode ser omitido do URI. Um blob no contentor de raiz pode ser referenciado sem atribuir um nome ao contentor ou o contentor de raiz pode ser explicitamente referenciado pelo respetivo nome ($root). Veja Trabalhar com o Contentor de Raiz para obter mais informações. Ambos os URIs seguintes referem-se a um blob no contentor de raiz:

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

Instantâneos de Blob

Um instantâneo é uma versão só de leitura de um blob armazenado como era no momento em que o instantâneo foi criado. Pode utilizar instantâneos para criar uma cópia de segurança ou um ponto de verificação de um blob. Um nome de blob de instantâneo inclui o URI do blob base e um valor de data/hora que indica quando o instantâneo foi criado.

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

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

O URI de um instantâneo desse blob é formado da seguinte forma:

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

A tabela seguinte fornece uma lista de carateres Unicode que não são recomendados para utilização em nomes de contentores ou blobs. Estes carateres, quando utilizados em combinação com outros carateres nesta lista, podem falhar a descodificação UTF-8 ou MCBS, o que leva à falha do pedido para o serviço Blob.

Caráter Unicode
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+0088
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFFFF
U+DFFFE
U+DFFFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

Ver também