Nomeando e referenciando contêineres, blobs e metadados
Este tópico descreve a nomenclatura e a 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. Se sua conta tiver um namespace hierárquico, um contêiner também poderá conter zero ou mais diretórios e esses diretórios poderão conter zero ou mais blobs. Um blob é qualquer entidade única composta por dados binários, propriedades e metadados.
Nomes de recursos
O URI para fazer referência a um contêiner ou a 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 dentro de um determinado contêiner também deve ter um nome exclusivo dentro desse contêiner.
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).
Os nomes de blob e contêiner são passados para o serviço Blob dentro de uma URL. Determinados caracteres devem ser codificados por porcentagem para aparecer em uma URL, usando UTF-8 (preferencial) ou MBCS. Essa codificação ocorre automaticamente quando você usa as bibliotecas de cliente do Armazenamento do Azure. No entanto, há determinados caracteres que não são válidos em caminhos de URL mesmo quando codificados. Se esses caracteres aparecerem em nomes de blob ou contêiner, a solicitação poderá falhar. Para obter uma lista desses caracteres, consulte caracteres Unicode não recomendados para uso em nomes de contêiner ou blob.
Pontos de código como \uE000, embora válidos em nomes de arquivo NTFS, não são caracteres Unicode válidos, portanto, 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 obter regras adicionais que regem cadeias de caracteres Unicode em HTTP/1.1, consulte RFC 2616, Seção 2.2: Regras Básicas e RFC 3987.
Nomes de contêiner
Um nome de contêiner deve ser um nome DNS válido, em conformidade com as seguintes regras de nomenclatura:
Os nomes de contêiner devem iniciar ou terminar com uma letra ou número e podem conter apenas letras, números e o caractere hifen/menos (-).
Cada caractere hifen/menos (-) deve ser imediatamente precedido e seguido por uma letra ou número; hífens consecutivos não são permitidos em nomes de contêiner.
Todas as letras em um nome de contêiner devem ser minúsculas.
Os nomes de contêiner devem ter de 3 a 63 caracteres.
Nomes de diretório
Se sua conta tiver um namespace hierárquico, um nome de diretório deverá estar em conformidade com as seguintes regras de nomenclatura:
Um nome de diretório pode conter qualquer combinação de caracteres.
Um nome de diretório deve ter pelo menos um caractere e não pode ter mais de 1.024 caracteres.
Os nomes de diretório diferenciam maiúsculas de minúsculas.
Os caracteres de URL reservados devem ser escapados corretamente.
Nota
Evite nomes de diretório que terminam 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 (.).
Nomes de blob
Um nome de blob deve estar em conformidade com as regras de nomenclatura a seguir. Essas regras também se aplicam a blobs em contas que têm um namespace hierárquico, a menos que indicado de outra forma.
Um nome de blob pode conter qualquer combinação de caracteres.
Um nome de blob deve ter pelo menos um caractere e não pode ter mais de 1.024 caracteres, para blobs no Armazenamento do Azure.
O emulador de Armazenamento do Azure dá suporte a nomes de blob de até 256 caracteres. Para obter mais informações, consulte Usar o emulador de armazenamento do Azure para desenvolvimento e teste.
Os nomes de blob diferenciam maiúsculas de minúsculas.
Os caracteres de URL reservados devem ser escapados corretamente.
Há limitações no número de segmentos de caminho que compõem um nome de blob. Um segmento de caminho é a cadeia de caracteres entre caracteres delimitadores consecutivos (por exemplo, uma barra
/
) que corresponde ao diretório ou diretório virtual. As seguintes limitações de segmento de caminho se aplicam aos nomes de blob:- Se a conta de armazenamento não tiver o namespace hierárquico habilitado, o número de segmentos de caminho que compõem o nome do blob não poderá exceder 254.
- Se a conta de armazenamento tiver o namespace hierárquico habilitado, o número de segmentos de caminho que compõem o nome do blob não poderá exceder 63 (incluindo segmentos de caminho para nome da conta e nome do contêiner).
Nota
Evite nomes de blob que terminam 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 (.).
Por padrão, o serviço Blob é baseado em um esquema de armazenamento simples, não em um esquema hierárquico. No entanto, você pode especificar um delimitador de caracteres ou cadeia de caracteres dentro de 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:
/um
/a.txt
/a/b
/a/b.txt
Você pode aproveitar o caractere delimitador ao enumerar blobs.
Nomes de chave e valor de metadados
Os metadados de um recurso de contêiner ou blob são armazenados como pares nome-valor associados ao recurso. Os nomes de chave de metadados devem seguir as seguintes regras de nomenclatura:
Deve começar com uma letra ou sublinhado
Os caracteres a seguir podem ser letras, números ou sublinhados
O nome da chave de metadados deve ser ASCII válido
Os nomes de valor de metadados também devem ser ASCII válidos. Observe que os nomes de metadados preservam o caso com o 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).
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 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 explicitamente referenciado por seu nome ($root
). Consulte Trabalhando com o contêiner raiz para obter mais informações. Os seguintes URIs referem-se a um blob no contêiner 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 somente leitura de um blob armazenado como era 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 de blob base mais um 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 de um instantâneo desse blob é formado da seguinte maneira:
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
Caracteres Unicode não recomendados para uso em nomes de contêiner ou blob
A tabela a seguir fornece uma lista de caracteres Unicode que não são recomendados para uso em nomes de contêiner ou blob. Esses caracteres, quando usados em combinação com outros caracteres nesta lista, podem falhar na decodificação UTF-8 ou MBCS, levando à falha da solicitação para o serviço Blob.
Caractere 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 |
Consulte também
- Como usar o Serviço de Armazenamento de Blobs
- enumerando recursos de blob
- conceitos do serviço blob
- trabalhando com o contêiner raiz
- de Blob de Instantâneos