VENTAS: 1-800-867-1389

Asignar nombres y hacer referencia a contenedores, blobs y metadatos

Actualizado: abril de 2015

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.

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

ImportantImportante
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 de forma automática al utilizar las Bibliotecas de Azure .NET o cuando se construye un objeto Uri que incluye un nombre de blob o contenedor. 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. Respecto a las reglas que rigen las cadenas Unicode en HTTP/1.1, vea:

Un nombre de contenedor debe ser un nombre DNS válido, sujeto a las siguientes reglas de nomenclatura:

  1. Los nombres de contenedor deben comenzar con una letra o un número y solo pueden contener letras, números y guiones (-).

  2. Cada guion (-) debe estar precedido y seguido inmediatamente de una letra o un número; los guiones consecutivos no se permiten en los nombres del contenedor.

  3. Todas las letras de un contenedor deben ser minúsculas.

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

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

  • 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 1.024 caracteres.

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

  • Los caracteres reservados para direcciones URL deben convertirse correctamente.

  • El número de segmentos de ruta de acceso que componen el nombre de 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.

noteNota
Evite los nombres de blob que terminen con un punto (.), una barra diagonal (/) o una secuencia o una combinación de ambos.

El servicio de Blob 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.

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

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

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>

La biblioteca cliente .NET puede enumerar instantáneas como objetos CloudBlob cuando se llama a ListBlobs con BlobListingDetails establecido en Snapshots.

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2015 Microsoft