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. 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).

Importante

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 usa el Azure Storage bibliotecas cliente. Sin embargo, hay algunos caracteres que no son válidos para rutas de acceso URL, incluso aunque estén codificados. Estos caracteres no pueden aparecer en los nombres de blob o de contenedor. 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 las reglas que rigen cadenas Unicode en HTTP/1.1, vea 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 guión (-).

  • Todos los caracteres de guión (-) deben estar inmediatamente precedidos y seguidos por una letra o un número; no se permiten guiones consecutivos en 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 blob

Un nombre de blob debe estar sujeto a las siguientes reglas de nomenclatura:

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

  • Un nombre de blob debe tener al menos un carácter de longitud y no puede tener más de 1024 caracteres para blobs de Azure Storage.

    El emulador 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.

  • El número de segmentos de ruta de acceso que componen el nombre del blob no puede superar los 254. Un segmento de ruta de acceso es la cadena entre caracteres delimitadores consecutivos (por ejemplo, , la barra diagonal "/") que corresponde al nombre de un directorio virtual.

Nota

Evite los nombres de blob que terminen con un punto (.), una barra diagonal (/) o una secuencia o una combinación de ambos. Ningún segmento de ruta de acceso debe terminar con un punto (.).

Blob service se basa en un esquema plano de almacenamiento, 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 para 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>

Vea también