Asignar nombres y hacer referencia a contenedores, blobs y metadatos

En este tema se describe la asignación de nombres y referencias a contenedores, blobs, metadatos e instantáneas. Una cuenta de almacenamiento puede contener cero o más contenedores. Un contenedor contiene propiedades, metadatos y cero o más blobs. Si la cuenta tiene un espacio de nombres jerárquico, un contenedor también puede contener cero o más directorios y esos directorios pueden contener cero o más blobs. Un blob es cualquier entidad única compuesta por datos binarios, propiedades y metadatos.

Nombres de recurso

El URI para hacer referencia a un contenedor o blob debe ser único. Dado que cada nombre de cuenta es único, dos cuentas pueden tener contenedores con el mismo nombre. Sin embargo, en una cuenta determinada de almacenamiento, cada contenedor debe tener un nombre único. Todos los blobs de un contenedor determinado deben asimismo tener un nombre único dentro de ese contenedor.

Si intenta crear un contenedor blob con un nombre que infrinja las reglas de nomenclatura, la solicitud producirá un error con el código de estado 400 (solicitud incorrecta).

El blob y los nombres de contenedor se pasan al servicio Blob dentro de una dirección URL. Es preciso que algunos caracteres tengan codificación de porcentaje para que aparezcan en una URL, con UTF-8 (codificación de preferencia) o MBCS. Esta codificación se produce automáticamente cuando se usan las bibliotecas cliente de Azure Storage. Sin embargo, hay algunos caracteres que no son válidos para rutas de acceso URL, incluso aunque estén codificados. Si estos caracteres aparecen en nombres de blob o contenedor, es posible que se produzca un error en la solicitud. Para obtener una lista de estos caracteres, consulte Caracteres Unicode no recomendados para su uso en nombres de contenedor o blob.

Hay algunos puntos de código como \uE000 que, pese a que son válidos en nombres de archivo NTFS, no son caracteres Unicode válidos y, por tanto, no se pueden utilizar. Por otra parte, algunos caracteres ASCII o Unicode, como los caracteres de control (0x00 a 0x1F, \u0081, etc.), tampoco están permitidos.

Para obtener reglas adicionales que rigen las cadenas Unicode en HTTP/1.1, consulte RFC 2616, Sección 2.2: Reglas básicas y RFC 3987.

Nombres de contenedor

Un nombre de contenedor debe ser un nombre DNS válido y cumplir las reglas de nomenclatura siguientes:

  • Los nombres de contenedor deben comenzar o terminar 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 inmediatamente precedido y seguido de una letra o un número; No se permiten guiones consecutivos en los nombres de contenedor.

  • Todas las letras del nombre de un contenedor deben aparecer en minúsculas.

  • Los nombres de contenedor deben tener entre 3 y 63 caracteres de longitud.

Nombres de directorio

Si su cuenta tiene un espacio de nombres jerárquico, un nombre de directorio debe cumplir las siguientes reglas de nomenclatura:

  • Un nombre de directorio puede contener cualquier combinación de caracteres.

  • Un nombre de directorio debe tener al menos un carácter largo y no puede tener más de 1024 caracteres.

  • Los nombres de directorio distinguen mayúsculas de minúsculas.

  • Los caracteres de URL reservadas deben convertirse correspondientemente.

Nota

Evite los nombres de directorio que terminan con un punto (.), una barra diagonal (/), una barra diagonal inversa (\) o una secuencia o combinación de los dos. Ningún segmento de trazado debe terminar con un punto (.).

Captura de pantalla de la barra diagonal inversa no permitida.

Nombres de blob

Un nombre de blob debe cumplir las siguientes reglas de nomenclatura. Estas reglas también se aplican a los blobs de las cuentas que tienen un espacio de nombres jerárquico, a menos que se indique lo contrario.

  • Un nombre de blob puede contener cualquier combinación de caracteres.

  • Es preciso que un nombre de blob tenga al menos un carácter de longitud y no puede tener más de 1024 caracteres para blobs en Azure Storage.

    El emulador de Azure Storage admite nombres de blob de hasta 256 caracteres. Para más información, consulte Uso del emulador de Azure Storage para desarrollo y pruebas.

  • Los nombres de blob distinguen entre mayúsculas y minúsculas.

  • Los caracteres de URL reservadas deben convertirse correspondientemente.

  • Hay limitaciones en el número de segmentos de ruta de acceso que componen un nombre de blob. Un segmento de ruta de acceso es la cadena entre caracteres delimitadores consecutivos (por ejemplo, una barra diagonal /) que corresponde al directorio o al directorio virtual. Las siguientes limitaciones del segmento de ruta de acceso se aplican a los nombres de blobs:

    • Si la cuenta de almacenamiento no tiene habilitado el espacio de nombres jerárquico, el número de segmentos de ruta de acceso que componen el nombre del blob no puede superar los 254.
    • Si la cuenta de almacenamiento tiene habilitado el espacio de nombres jerárquico, el número de segmentos de ruta de acceso que componen el nombre del blob no puede superar los 63 (incluidos los segmentos de ruta de acceso para el nombre de la cuenta y el nombre del contenedor).

Nota

Evite los nombres de blob que terminan con un punto (.), una barra diagonal (/), una barra diagonal inversa (\) o una secuencia o combinación de los dos. Ningún segmento de trazado debe terminar con un punto (.).

Captura de pantalla de la barra diagonal no permitida.

De forma predeterminada, Blob service se basa en un esquema de almacenamiento plano, no en un esquema jerárquico. Sin embargo, puede especificar un delimitador de caracteres o de cadena en un nombre de blob para crear una jerarquía virtual. Por ejemplo, la siguiente lista muestra los nombres válidos y únicos para blobs. Observe que una cadena puede ser válida como nombre de blob y nombre de directorio virtual en el mismo contenedor:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Puede aprovechar las ventajas que ofrece el carácter delimitador a la hora de enumerar blobs.

Nombres de metadatos

Los metadatos de un recurso de contenedor o de blob se almacenan como pares de valor con nombre asociados al recurso. Los nombres de metadatos deben cumplir las reglas de nomenclatura de los identificadores de C#.

Tenga en cuenta que los nombres de los metadatos conservan las mayúsculas y minúsculas iniciales, pero no distinguen entre mayúsculas y minúsculas cuando se establecen o se leen. Si se envían dos o más encabezados de metadatos con el mismo nombre para un recurso, el servicio Blob devuelve el código de estado 400 (Solicitud incorrecta).

Sintaxis del URI de recurso

Cada recurso tiene un URI base que le corresponde, el cual hace referencia al recurso en sí.

En lo que respecta a la cuenta de almacenamiento, el URI base incluye solamente el nombre de la cuenta:

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

Para los contenedores, el URI base incluye el nombre de la cuenta y el nombre del contenedor:

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

Para los blobs, el URI base incluye el nombre de la cuenta, el nombre del contenedor y el nombre del blob:

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

Una cuenta de almacenamiento puede tener un contenedor raíz, un contenedor predeterminado que se puede omitir del URI. Se puede hacer referencia a un blob en el contenedor raíz sin asignar un nombre al contenedor o se puede hacer referencia explícita al contenedor raíz mediante su nombre ($root). Consulte Trabajar con el contenedor raíz para obtener más información. Los URI siguientes hacen ambos referencia a un blob en el contenedor raíz:

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

Instantáneas de blob

Una instantánea es una versión de solo lectura de un blob almacenado tal como estaba en el momento en que se creó la instantánea. Puede utilizar instantáneas para crear una copia de seguridad o un punto de comprobación de un blob. Un nombre de blob de instantánea incluye el URI base del blob además de un valor datetime que indica cuándo se creó la instantánea.

Por ejemplo, supongamos que un blob tiene el URI siguiente:

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

El URI para una instantánea del blob se forma de la siguiente forma:

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

En la tabla siguiente se proporciona una lista de caracteres Unicode que no se recomiendan para su uso en nombres de contenedor o blob. Estos caracteres, cuando se usan en combinación con otros caracteres de esta lista, pueden producir un error en la descodificación UTF-8 o MBCS, lo que provoca un error en la solicitud al servicio Blob.

carácter 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 también