Asignar nombres y hacer referencia a recursos compartidos, directorios, archivos y metadatos
Una cuenta de almacenamiento puede contener cero o más recursos compartidos de archivos de Azure. Un recurso compartido contiene propiedades, metadatos y cero o más archivos o directorios. Un directorio contiene propiedades y cero o más archivos o directorios. Un archivo es cualquier entidad única formada por datos binarios, propiedades y metadatos.
Nombres de recursos
El URI para hacer referencia a un recurso compartido, directorio o archivo debe ser único. Dentro de una cuenta de almacenamiento determinada, cada recurso compartido debe tener un nombre único. Cada archivo dentro de un recurso compartido o directorio determinado también debe tener un nombre único dentro de ese recurso compartido o directorio.
Si intenta crear un recurso compartido, un directorio o un archivo con un nombre que infringe las reglas de nomenclatura, se produce un error en la solicitud con el código de estado 400 (solicitud incorrecta).
Nombres de recursos compartidos
Las reglas para los nombres de recursos compartidos de servicio de archivos son más restrictivas que las que prescribe el protocolo SMB para los nombres de recursos compartidos de SMB, de modo que los servicios de blob y archivo puedan compartir convenciones de nomenclatura similares para contenedores y recursos compartidos. Las restricciones de nomenclatura para los recursos compartidos son las siguientes:
- Un nombre de recurso compartido debe ser un nombre DNS válido.
- Los nombres compartidos deben comenzar con una letra o un número, y solo pueden contener letras, números y el carácter de guion/menos (-).
- Cada carácter de guion/menos (-) debe ir precedido inmediatamente y seguido de una letra o número; No se permiten guiones consecutivos en nombres de recurso compartido.
- Todas las letras de un nombre de recurso compartido deben estar en minúsculas.
- Los nombres de recurso compartido deben tener entre 3 y 63 caracteres.
En la tabla siguiente se comparan las restricciones de nomenclatura de Azure Files y Azure Blob Storage:
nomenclatura y referencia a contenedores, blobs y de metadatos | restricciones de nombre de recurso compartido de SMB |
---|---|
• Un nombre de contenedor debe ser un nombre DNS válido. • Los nombres de contenedor deben comenzar con una letra o número, y solo pueden contener letras, números y el carácter de guion/menos (-). • Cada carácter de guion/menos (-) debe ir inmediatamente precedido y seguido de una letra o número; Los guiones consecutivos no se permiten en los nombres de contenedor. • Todas las letras de un nombre de contenedor deben estar en minúsculas. • Los nombres de contenedor deben tener entre 3 y 63 caracteres. |
• Un nombre de recurso compartido no debe tener más de 80 caracteres de longitud. • Los siguientes caracteres son ilegales en un nombre de recurso compartido: \ / [ ] : ¦ < > + = ; , * ? " • Los caracteres de control del intervalo 0x00 a través de 0x1F, inclusive, son ilegales en un nombre de recurso compartido. • Todos los demás caracteres Unicode son legales. • Los nombres distinguen mayúsculas de minúsculas y no distinguen mayúsculas de minúsculas. |
Nombres de directorio y archivo
Azure Files aplica las siguientes reglas de nomenclatura para los nombres de directorio y archivo:
- Los nombres de directorio y archivo no distinguen mayúsculas de minúsculas y no distinguen mayúsculas de minúsculas.
- Los nombres de los componentes de directorio y archivo no deben tener más de 255 caracteres de longitud.
- Los nombres de directorio no pueden terminar con el carácter de barra diagonal (/). Si se proporciona, se quitará automáticamente.
- Los nombres de archivo no deben terminar con el carácter de barra diagonal (/).
- Los caracteres de dirección URL reservada deben tener un escape correcto.
- No se permiten los siguientes caracteres:
" \ / : | < > * ?
- No se permiten caracteres de ruta de acceso url no válidos. Los puntos de código como
\uE000
, mientras que válidos en nombres de archivo NTFS, no son caracteres Unicode válidos. Además, algunos caracteres ASCII o Unicode, como los caracteres de control (0x00
a0x1F
), tampoco se permiten. Para conocer las reglas que rigen las cadenas Unicode en HTTP/1.1, consulte RFC 2616, Sección 2.2: Reglas básicas y RFC 3987. - No se admiten caracteres Unicode no válidos (denominados pares suplentes no válidos).
- No se permiten los siguientes nombres de archivo: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, dot character (.) y dos caracteres de punto (..).
- A partir de la versión 2021-12-02, los nombres de directorio y archivo admiten caracteres U+FFFE y U+FFFF a través de todas las operaciones. Estos caracteres también se admiten a través de protocolos SMB y REST. Lista de directorios y archivos y identificadores de lista operaciones necesitan un control especial para estos caracteres, como se mencionó en su documentación respectiva.
De forma predeterminada, para los recursos compartidos de archivos con el protocolo SMB habilitado, los caracteres de punto (.) al final del directorio y los nombres de archivo de las direcciones URL de solicitud se omiten o se dejan fuera.
- Por ejemplo, si se crea un archivo denominado
file1...
, se omitirán los puntos al final y se creará un archivo denominadofile1
. Lo mismo se aplica a los directorios de la ruta de acceso. Si una solicitud de creación de archivos incluye la ruta de acceso\Dir1\Dir2…\File1
, el archivo se creará en\Dir1\Dir2\File1
. - Sin embargo, a partir de la versión 2022-11-02, el comportamiento predeterminado se puede invalidar estableciendo el encabezado
x-ms-allow-trailing-dot
entrue
en la solicitud de dirección URL. - Por ejemplo, si desea crear un archivo denominado
file1...
e incluir los puntos finales, elx-ms-allow-trailing-dot
debe incluirse en el encabezado de solicitud y establecerse entrue
. Lo mismo se aplica a la creación de nombres de directorio. - En el caso de una solicitud de copia de archivos, si desea incluir puntos finales en el nombre del archivo de origen, el encabezado
x-ms-source-allow-trailing-dot
debe establecerse entrue
. Para obtener más información, consulte las opciones de encabezado disponibles para cada API REST individual.
De forma predeterminada, para los recursos compartidos de archivos con el protocolo NFS habilitado, los caracteres de punto (.) al final del directorio y los nombres de archivo de las direcciones URL de solicitud no se no se omiten.
En la tabla siguiente se comparan las restricciones de nomenclatura de Azure Files y Azure Blob Storage:
nomenclatura y referencia a contenedores, blobs y de metadatos | restricciones de nombre del protocolo SMB de |
---|---|
• Un nombre de blob debe tener al menos un carácter largo y no puede tener más de 1024 caracteres. • Los nombres de blobs distinguen mayúsculas de minúsculas. • Los caracteres de dirección URL reservada deben tener un escape correcto. • Los nombres de blobs pueden terminar con un delimitador de directorio virtual, como una barra diagonal (/) • No se permiten caracteres de ruta de acceso URL no válidos: puntos de código como \uE000, mientras que válidos en nombres de archivo NTFS, no son caracteres Unicode válidos. Además, algunos caracteres ASCII o Unicode, como los caracteres de control (0x00 a 0x1F), tampoco se permiten. Para conocer las reglas que rigen las cadenas Unicode en HTTP/1.1, consulte RFC 2616, Sección 2.2: Reglas básicas y RFC 3987. |
• Un nombre de ruta de acceso no puede tener más de 32 760 caracteres de longitud. • Cada componente de nombre de ruta de acceso (archivo o directorio) no puede tener más de 255 caracteres de longitud. • Un nombre de ruta de acceso se compone de uno o varios componentes de nombre de ruta de acceso separados por el carácter de barra diagonal inversa (\). • El nombre de la ruta de acceso no distingue mayúsculas de minúsculas y distingue mayúsculas de minúsculas (no se permiten dos nombres que solo difieren en el caso). • No se puede tener una ruta de acceso de directorio que sea la misma que una ruta de acceso de archivo. • Los siguientes caracteres son ilegales en un nombre de componente: \ / : ¦ < > * ? " • Los caracteres de control del intervalo 0x00 a través de 0x1F, inclusive, son ilegales en un nombre de recurso compartido. |
Nombres de ruta de acceso
Un nombre de ruta de acceso se compone de uno o varios componentes de nombre de ruta de acceso (directorio o nombre de archivo) separados por el carácter de barra diagonal (/). Todos los componentes de nombre de ruta de acceso distintos del componente de nombre de la última ruta de acceso indican directorios. El último componente de nombre de ruta de acceso denota un directorio o un archivo. Se aplican las siguientes reglas de nomenclatura:
- Un nombre de ruta de acceso no puede tener más de 2048 caracteres de longitud. Los componentes individuales de la ruta de acceso pueden tener un máximo de 255 caracteres de longitud.
- Un nombre de ruta de acceso se compone de uno o varios componentes de nombre de ruta de acceso separados por el carácter de barra diagonal (/).
- La profundidad de los subdirectorios de la ruta de acceso no puede superar los 250.
- No se puede usar el mismo nombre para un archivo y un directorio que comparta el mismo directorio primario. Por ejemplo, un archivo y un directorio denominados
data
no pueden existir en la misma ruta de acceso primaria.
Nombres de metadatos
Los metadatos de un recurso compartido o de archivo se almacenan como pares nombre-valor asociados al recurso. Los nombres de metadatos deben cumplir las reglas de nomenclatura de los identificadores de C# .
Los nombres de metadatos conservan el caso con el que se crearon, pero no distinguen mayúsculas de minúsculas cuando se establecen o leen. Si se envían dos o más encabezados de metadatos con el mismo nombre para un recurso, el servicio Azure File devuelve el código de estado 400 (solicitud incorrecta).
Sintaxis de URI de recursos
Cada recurso tiene un URI base correspondiente, que hace referencia al propio recurso. Para la cuenta de almacenamiento, el URI base solo incluye el nombre de la cuenta:
https://myaccount.file.core.windows.net
Para un recurso compartido, el URI base incluye el nombre de la cuenta y el nombre del recurso compartido:
https://myaccount.file.core.windows.net/myshare
Para un directorio, el URI base incluye el nombre de la cuenta, el nombre del recurso compartido y la ruta de acceso del directorio:
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir
Para un archivo, el URI base incluye el nombre de la cuenta, el nombre del recurso compartido y la ruta de acceso del archivo:
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