Nomeando e referenciando compartilhamentos, diretórios, arquivos e metadados
Uma conta de armazenamento pode conter zero ou mais compartilhamentos de arquivos do Azure. Um compartilhamento contém propriedades, metadados e zero ou mais arquivos ou diretórios. Um diretório contém propriedades e zero ou mais arquivos ou diretórios. Um arquivo é qualquer entidade única composta de dados binários, propriedades e metadados.
Nomes de recursos
O URI para fazer referência a um compartilhamento, diretório ou arquivo deve ser exclusivo. Dentro de uma determinada conta de armazenamento, cada compartilhamento deve ter um nome exclusivo. Cada arquivo dentro de um determinado compartilhamento ou diretório também deve ter um nome exclusivo dentro desse compartilhamento ou diretório.
Se você tentar criar um compartilhamento, diretório ou arquivo com um nome que viole as regras de nomenclatura, a solicitação falhará com o código de status 400 (Solicitação incorreta).
Nomes de compartilhamento
As regras para nomes de compartilhamento de serviço de arquivo são mais restritivas do que o prescrito pelo protocolo SMB para nomes de compartilhamento SMB, de modo que os serviços de Blob e Arquivo possam compartilhar convenções de nomenclatura semelhantes para contêineres e compartilhamentos. As restrições de nomenclatura para compartilhamentos são as seguintes:
- Um nome de compartilhamento deve ser um nome DNS válido.
- Os nomes de compartilhamento devem começar com uma letra ou número e podem conter apenas letras, números e o caractere hífen/menos (-).
- Cada hífen/menos (-) caractere deve ser imediatamente precedido e seguido de uma letra ou número; hífenes consecutivas não são permitidas em nomes de compartilhamento.
- Todas as letras em um nome de compartilhamento devem ser minúsculas.
- Os nomes de compartilhamento devem ter de 3 a 63 caracteres.
A tabela a seguir compara as restrições de nomenclatura para Arquivos do Azure e armazenamento de Blob do Azure:
Nomeando e referenciando contêineres, blobs e metadados | Restrições de nome de compartilhamento SMB |
---|---|
• Um nome de contêiner deve ser um nome DNS válido. • Os nomes dos contêineres devem começar com uma letra ou número e podem conter apenas letras, números e o caractere hífen/menos (-). • Cada hífen/menos (-) deve ser imediatamente precedido e seguido de uma letra ou número; hífenes consecutivas não são permitidas em nomes de contêineres. • Todas as letras no nome de um recipiente devem ser minúsculas. • Os nomes dos contêineres devem ter de 3 a 63 caracteres. |
• Um nome de partilha não deve ter mais de 80 caracteres. • Os seguintes caracteres são ilegais em um nome de compartilhamento: \ / [ ] : ¦ < > + = ; , * ? " • Caracteres de controle no intervalo 0x00 até 0x1F, inclusive, são ilegais em um nome de compartilhamento. • Todos os outros caracteres Unicode são legais. • Os nomes preservam maiúsculas e minúsculas e não diferenciam maiúsculas de minúsculas. |
Nomes de diretórios e arquivos
O Azure Files impõe as seguintes regras de nomenclatura para nomes de diretório e arquivo:
- Os nomes de diretório e arquivo preservam maiúsculas e minúsculas e não diferenciam maiúsculas de minúsculas.
- Os nomes dos componentes de diretório e arquivo não devem ter mais de 255 caracteres.
- Os nomes de diretório não podem terminar com o caractere de barra (/). Se fornecido, ele será removido automaticamente.
- Os nomes de arquivo não devem terminar com o caractere de barra (/).
- Os caracteres de URL reservados devem ser escapados corretamente.
- Os seguintes caracteres não são permitidos:
" \ / : | < > * ?
- Caracteres de caminho de URL ilegais não são permitidos. Pontos de código como
\uE000
, embora válidos em nomes de arquivos NTFS, não são caracteres Unicode válidos. Além disso, alguns caracteres ASCII ou Unicode, como caracteres de controle (0x00
a0x1F
), também não são permitidos. Para regras que regem cadeias de caracteres Unicode em HTTP/1.1, consulte RFC 2616, Seção 2.2: Regras básicas e RFC 3987. - Não há suporte para caracteres Unicode inválidos (referidos como pares substitutos inválidos).
- Os seguintes nomes de arquivo não são permitidos: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, caractere de ponto (.), e dois caracteres de ponto (..).
- A partir da versão 2021-12-02, os nomes de diretório e arquivo suportam caracteres U+FFFE e U+FFFF em todas as operações. Esses caracteres também são suportados por meio de protocolos SMB e REST. List, Diretório e Arquivos, e List, manipula operações precisam de tratamento especial para esses caracteres, conforme mencionado em sua respetiva documentação.
Por padrão, para Compartilhamentos de Arquivos com o protocolo SMB habilitado, os caracteres de ponto (.) no final do diretório e os nomes de arquivo nas URLs de solicitação são ignorados ou deixados de fora.
- Por exemplo, se um arquivo chamado
file1...
estiver sendo criado, os pontos no final serão ignorados e um arquivo chamadofile1
será criado. O mesmo se aplica aos diretórios no caminho. Se uma solicitação de criação de arquivo incluir o caminho\Dir1\Dir2…\File1
o arquivo será criado em\Dir1\Dir2\File1
. - No entanto, a partir da versão 2022-11-02, o comportamento padrão pode ser substituído definindo o cabeçalho
x-ms-allow-trailing-dot
paratrue
na solicitação de URL. - Por exemplo, se você quiser criar um arquivo chamado
file1...
e incluir os pontos à direita, ox-ms-allow-trailing-dot
deve ser incluído no cabeçalho da solicitação e definido comotrue
. O mesmo se aplica à criação de nomes de diretórios. - No caso de uma solicitação de cópia de arquivo, se você quiser incluir pontos à direita no nome do arquivo de origem, o cabeçalho
x-ms-source-allow-trailing-dot
deve ser definido comotrue
. Para obter mais informações, confira as opções de cabeçalho disponíveis para cada API REST individual.
Por padrão, para Compartilhamentos de Arquivos com o protocolo NFS habilitado, os caracteres de ponto (.) no final do diretório e os nomes de arquivo nas URLs de solicitação não ignorados.
A tabela a seguir compara as restrições de nomenclatura para Arquivos do Azure e armazenamento de Blob do Azure:
Nomeando e referenciando contêineres, blobs e metadados | de restrições de nome de protocolo SMB |
---|---|
• Um nome de blob deve ter pelo menos um caractere e não pode ter mais de 1.024 caracteres. • Os nomes de Blob diferenciam maiúsculas de minúsculas. • Os caracteres de URL reservados devem ser escapados corretamente. • Os nomes de blob podem terminar com um delimitador de diretório virtual, como uma barra (/) • Caracteres de caminho de URL ilegais não permitidos: Pontos de código como \uE000, embora válidos em nomes de arquivos NTFS, não são caracteres Unicode válidos. Além disso, alguns caracteres ASCII ou Unicode, como caracteres de controle (0x00 a 0x1F), também não são permitidos. Para regras que regem cadeias de caracteres Unicode em HTTP/1.1, consulte RFC 2616, Seção 2.2: Regras básicas e RFC 3987. |
• Um nome de caminho não pode ter mais de 32.760 caracteres. • Cada componente de nome de caminho (arquivo / diretório) não pode ter mais de 255 caracteres de comprimento. • Um nome de caminho é composto por um ou mais componentes de nome de caminho separados pelo caractere de barra invertida (\). • O nome do caminho preserva maiúsculas e minúsculas e não diferencia maiúsculas de minúsculas (dois nomes que diferem apenas no caso de não serem permitidos). • Não é possível ter um caminho de diretório que seja o mesmo que um caminho de arquivo. • Os seguintes caracteres são ilegais em um nome de componente: \ / : ¦ < > * ? " • Caracteres de controle no intervalo 0x00 até 0x1F, inclusive, são ilegais em um nome de compartilhamento. |
Nomes de caminhos
Um nome de caminho é composto por um ou mais componentes de nome de caminho (diretório ou nome de arquivo) separados pelo caractere de barra (/). Todos os componentes de nome de caminho diferentes do componente de nome do último caminho denotam diretórios. O componente de nome do último caminho indica um diretório ou um arquivo. Aplicam-se as seguintes regras de nomenclatura:
- Um nome de caminho não pode ter mais de 2.048 caracteres. Os componentes individuais no caminho podem ter no máximo 255 caracteres.
- Um nome de caminho é composto por um ou mais componentes de nome de caminho separados pelo caractere de barra (/).
- A profundidade dos subdiretórios no caminho não pode exceder 250.
- O mesmo nome não pode ser usado para um arquivo e um diretório que compartilham o mesmo diretório pai. Por exemplo, um arquivo e um diretório que são nomeados
data
não podem existir no mesmo caminho pai.
Nomes de metadados
Os metadados de um recurso de compartilhamento ou arquivo são armazenados como pares nome-valor associados ao recurso. Os nomes de metadados devem aderir às regras de nomenclatura para identificadores C#.
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 de Arquivo do Azure retornará o código de status 400 (Solicitação incorreta).
Sintaxe do URI do recurso
Cada recurso tem um URI de 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.file.core.windows.net
Para um compartilhamento, o URI base inclui o nome da conta e o nome do compartilhamento:
https://myaccount.file.core.windows.net/myshare
Para um diretório, o URI base inclui o nome da conta, o nome do compartilhamento e o caminho do diretório:
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir
Para um arquivo, o URI base inclui o nome da conta, o nome do compartilhamento e o caminho do arquivo:
https://myaccount.file.core.windows.net/myshare/myfile
https://myaccount.file.core.windows.net/myshare/mydir/myfile
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir/myfile