Instantánea de blob

La operación Snapshot Blob crea una instantánea de solo lectura de un blob.

Solicitud

Puede construir la Snapshot Blob solicitud como se indica a continuación. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento:

URI de solicitud de método PUT Versión de HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

URI del servicio de almacenamiento emulado

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y Azure Blob Storage puerto como 127.0.0.1:10000, seguido del nombre de cuenta emulado:

URI de solicitud de método PUT Versión de HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

Para más información, consulte Uso del emulador de Azurite para desarrollo y pruebas locales de Azure Storage.

Parámetros del identificador URI

Puede especificar el siguiente parámetro adicional en el URI de solicitud.

Parámetro Descripción
timeout Opcional. El parámetro timeout se expresa en segundos. Para más información, consulte Configuración de tiempos de espera para las operaciones de Blob Storage.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
Date o x-ms-date Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
x-ms-version Obligatorio para todas las solicitudes autorizadas. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios de Azure Storage.
x-ms-meta-name:value Opcional. Especifica un par de nombre-valor definido por el usuario asociado al blob. Si no especifica ningún par nombre-valor, la operación copia los metadatos del blob base en la instantánea. Si especifica uno o varios pares nombre-valor, la instantánea se crea con los metadatos especificados y los metadatos no se copian del blob base.

Tenga en cuenta que a partir de la versión 2009-09-19, los nombres de metadatos deben cumplir las reglas de nomenclatura de los identificadores de C#. Consulte Nomenclatura y referencia a contenedores, blobs y metadatos para obtener más información.
If-Modified-Since Opcional. Valor DateTime. Especifique este encabezado condicional para tomar una instantánea del blob, solo si se ha modificado desde la fecha y hora especificadas. Si el blob base no se ha modificado, Blob Storage devuelve el código de estado 412 (error de condición previa).
If-Unmodified-Since Opcional. Valor DateTime. Especifique este encabezado condicional para tomar una instantánea del blob, solo si no se ha modificado desde la fecha y hora especificadas. Si se ha modificado el blob base, Blob Storage devuelve el código de estado 412 (error de condición previa).
If-Match Opcional. Valor ETag. Especifique un ETag valor para este encabezado condicional para tomar una instantánea del blob, solo si su ETag valor coincide con el valor especificado. Si los valores no coinciden, Blob Storage devuelve el código de estado 412 (error de condición previa).
If-None-Match Opcional. Valor ETag.

Especifique un ETag valor para este encabezado condicional para tomar una instantánea del blob, solo si su ETag valor no coincide con el valor especificado. Si los valores son idénticos, Blob Storage devuelve el código de estado 412 (error de condición previa).
x-ms-encryption-scope Opcional. Indica el ámbito de cifrado que se va a usar para cifrar el contenido de la solicitud. Este encabezado se admite en la versión 2019-02-02 y posteriores.
x-ms-lease-id:<ID> Opcional. Si especifica este encabezado, la operación solo se realiza si se cumplen las dos condiciones siguientes:

- La concesión del blob está activa actualmente.
: el identificador de concesión especificado en la solicitud coincide con el del blob.

Si se especifica este encabezado y no se cumple ninguna de estas condiciones, se produce un error en la solicitud. Se produce un error en la Snapshot Blob operación con el código de estado 412 (error en la condición previa).
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para obtener más información, vea Supervisar Azure Blob Storage.

Esta operación también admite el uso de encabezados condicionales para ejecutar la operación, solo si se cumple una condición especificada. Para más información, consulte Especificación de encabezados condicionales para las operaciones de Blob Storage.

Encabezados de solicitud (claves de cifrado proporcionadas por el cliente)

A partir de la versión 2019-02-02, puede especificar los encabezados siguientes en la solicitud para cifrar un blob con una clave proporcionada por el cliente. El cifrado con una clave proporcionada por el cliente (y el conjunto de encabezados correspondiente) es opcional. Si un blob se ha cifrado previamente con una clave proporcionada por el cliente, estos encabezados deben incluirse en la solicitud para completar correctamente la operación de lectura.

Encabezado de solicitud Descripción
x-ms-encryption-key Necesario. Clave de cifrado AES-256 codificada en Base64.
x-ms-encryption-key-sha256 Necesario. Hash SHA256 codificado en Base64 de la clave de cifrado.
x-ms-encryption-algorithm: AES256 Necesario. Especifica el algoritmo que se va a usar para el cifrado. El valor de este encabezado debe ser AES256.

Cuerpo de la solicitud

Ninguno.

Response

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

status code

Una operación correcta devuelve el código de estado 201 (Creado). Para obtener información sobre los códigos de estado, vea Códigos de estado y de error.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP adicionales y estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Sintaxis Descripción
x-ms-snapshot: <DateTime> Devuelve un DateTime valor que identifica de forma única la instantánea. El valor de este encabezado indica la versión de la instantánea y puede usarla en solicitudes posteriores para acceder a la instantánea. Tenga en cuenta que este valor es opaco.
ETag de ETag la instantánea. Si la versión de la solicitud es 2011-08-18 o posterior, el ETag valor estará entre comillas. Tenga en cuenta que una instantánea no se puede escribir en, por lo que la ETag de una instantánea determinada nunca cambia. Sin embargo, el ETag de la instantánea diferirá del del blob base si se proporcionan nuevos metadatos con la Snaphot Blob solicitud. Si no se especifica ningún metadato con la solicitud, el ETag de la instantánea será idéntico al del blob base, en el momento en que se tomó la instantánea.
Last-Modified La hora de la última modificación de la instantánea. Para obtener más información, vea Representación de valores de fecha y hora en encabezados.

Tenga en cuenta que una instantánea no se puede escribir en, por lo que la hora de la última modificación de una instantánea determinada nunca cambia. Sin embargo, la hora de la última modificación de la instantánea diferirá de la del blob base si se proporcionan nuevos metadatos con la Snaphot Blob solicitud. Si no se especifica ningún metadato con la solicitud, la hora de la última modificación de la instantánea será idéntica a la del blob base, en el momento en que se tomó la instantánea.
x-ms-request-id Identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API.
x-ms-version Indica la versión de Blob Storage que se usó para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.
Date Valor de fecha y hora UTC que indica la hora en la que se inició la respuesta. El servicio genera este valor.
x-ms-request-server-encrypted: true/false Versión 2019-02-02 o posterior. El valor de este encabezado se establece trueen , si el contenido de la solicitud se cifra correctamente mediante el algoritmo especificado. De lo contrario, el valor se establece en false.
x-ms-encryption-key-sha256 Versión 2019-02-02 o posterior. Se devuelve si la solicitud usó una clave proporcionada por el cliente para el cifrado. El cliente puede asegurarse de que el contenido de la solicitud se cifre correctamente mediante la clave proporcionada.
x-ms-encryption-scope Versión 2019-02-02 o posterior. Se devuelve si la solicitud usó un ámbito de cifrado. El cliente puede asegurarse de que el contenido de la solicitud se cifre correctamente mediante el ámbito de cifrado.
x-ms-version-id: <DateTime> Versión 2019-12-12 y posteriores. Devuelve un valor opaco DateTime que identifica de forma única el blob. El valor de este encabezado indica la versión del blob y puede usarla en solicitudes posteriores para acceder al blob.
x-ms-client-request-id Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, no estará presente en la respuesta.

Response body

Ninguno.

Authorization

La autorización es necesaria al llamar a cualquier operación de acceso a datos en Azure Storage. Puede autorizar la Snapshot Blob operación como se describe a continuación.

Azure Storage admite el uso de Microsoft Entra ID para autorizar solicitudes a datos de blobs. Con Microsoft Entra ID, puede usar el control de acceso basado en rol de Azure (RBAC de Azure) para conceder permisos a una entidad de seguridad. La entidad de seguridad puede ser un usuario, un grupo, una entidad de servicio de aplicación o una identidad administrada de Azure. La entidad de seguridad se autentica mediante Microsoft Entra ID para devolver un token de OAuth 2.0. Después, el token se puede usar para autorizar una solicitud en Blob service.

Para más información sobre la autorización mediante Microsoft Entra ID, consulte Autorización del acceso a blobs mediante Microsoft Entra ID.

Permisos

A continuación se enumeran las acciones de RBAC necesarias para que un usuario, grupo o entidad de servicio de Microsoft Entra llame a la Snapshot Blob operación y el rol RBAC integrado con privilegios mínimos que incluye esta acción:

Para más información sobre cómo asignar roles mediante RBAC de Azure, consulte Asignación de un rol de Azure para el acceso a datos de blobs.

Comentarios

Las instantáneas proporcionan versiones de solo lectura de los blobs. Después de crear una instantánea, puede leerla, copiarla o eliminarla, pero no puede modificarla.

Una instantánea constituye una manera cómoda de realizar copias de seguridad de los datos del blob. Puede usar una instantánea para restaurar un blob en una versión anterior mediante una llamada a Copy Blob para sobrescribir un blob base con su instantánea.

Al crear una instantánea, Blob Storage devuelve un DateTime valor que identifica de forma única la instantánea con respecto a su blob base. Puede usar este valor para realizar otras operaciones en la instantánea. Tenga en cuenta que debe tratar este DateTime valor como opaco.

El DateTime valor identifica la instantánea en el URI. Por ejemplo, los URI de un blob base y de sus instantáneas se parecen a los siguientes:

  • Blob base: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Instantánea: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Tenga en cuenta que cada vez que se llama a la Snapshot Blob operación, se crea una nueva instantánea, con un valor único DateTime . Un blob puede tener cualquier número de instantáneas. Las instantáneas existentes nunca se sobrescriben. Para eliminarlos explícitamente, llame a Delete Blob y establezca el x-ms-include-snapshots encabezado en el valor adecuado.

Una llamada correcta a devuelve Snapshot Blob un DateTime valor en el encabezado de x-ms-snapshot respuesta. A continuación, puede usar este DateTime valor para realizar operaciones de lectura, eliminación o copia en una versión de instantánea determinada. Puede llamar a cualquier operación de Blob Storage válida para una instantánea especificando ?snapshot=<DateTime> después del nombre del blob.

Cuando se crea una instantánea de un blob, se copian en ella las siguientes propiedades del sistema con los mismos valores:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (solo para blobs en páginas)

  • x-ms-blob-committed-block-count (solo para blobs en anexos)

  • x-ms-copy-id (versión 2012-02-12 y posteriores)

  • x-ms-copy-status (versión 2012-02-12 y posteriores)

  • x-ms-copy-source (versión 2012-02-12 y posteriores)

  • x-ms-copy-progress (versión 2012-02-12 y posteriores)

  • x-ms-copy-completion-time (versión 2012-02-12 y posteriores)

  • x-ms-copy-status-description (versión 2012-02-12 y posteriores)

La lista de bloques confirmada del blob base también se copia en la instantánea, si el blob es un blob en bloques. Los bloques no confirmados no se copian.

El blob de instantáneas siempre tiene el mismo tamaño que el blob base en el momento en que se toma la instantánea. El valor del Content-Length encabezado para el blob de instantáneas será el mismo que para el blob base.

Puede especificar uno o varios valores de metadatos nuevos para la instantánea especificando el encabezado x-ms-meta-name:value en la solicitud. Si no se especifica este encabezado, los metadatos asociados al blob base se copian en la instantánea.

Las etiquetas asociadas al blob base se copian en la instantánea. No es posible establecer nuevos valores de etiqueta para la instantánea.

Puede especificar encabezados condicionales en la solicitud para tomar una instantánea del blob solo si se cumple una condición. Si no se cumple la condición especificada, no se crea la instantánea. El servicio devuelve el código de estado 412 (error de condición previa), junto con información adicional sobre el error de la condición no actualizada.

Si el blob base tiene una concesión activa, puede tomar una instantánea del blob siempre que se cumple alguna de las condiciones siguientes de la solicitud:

  • Se ha especificado el encabezado condicional x-ms-lease-id y el identificador de la concesión activa para el blob base está incluido en la solicitud. Esta condición especifica que la instantánea se crea solo si la concesión está activa y el identificador de concesión especificado coincide con el asociado al blob.

  • El x-ms-lease-id encabezado no se especifica en absoluto, en cuyo caso se omite la concesión de escritura exclusiva.

Tenga en cuenta que una concesión asociada al blob base no se copia en la instantánea. Las instantáneas no se pueden conceder.

Al copiar un blob base mediante la operación Copiar blob , las instantáneas del blob base no se copian en el blob de destino. Cuando un blob de destino se sobrescribe con una copia, las instantáneas asociadas al blob de destino bajo su nombre no se modifican.

Para restaurar una versión anterior de un blob, puede copiar un blob de instantánea en su blob base. La instantánea se conserva, pero el blob base se sobrescribe con una copia que se puede leer y escribir.

Nota

La promoción de una instantánea no conlleva un cargo adicional por los recursos de almacenamiento. Esto se debe a que los bloques o páginas se comparten entre la instantánea y el blob base.

Puede establecer un nivel de blob en una instantánea, empezando por la versión REST 2019-12-12. Si se establece un nivel en un blob raíz, todas las instantáneas heredan el nivel del blob base. Se producirá un error al tomar una instantánea en un blob archivado. Establecer explícitamente el nivel en un objeto da como resultado la facturación del tamaño completo del objeto. Tomar una instantánea de un blob que tenga el conjunto de niveles da como resultado la facturación de copia completa del blob raíz y la instantánea. Para obtener información detallada sobre los niveles de nivel de blob en bloques, consulte Niveles de almacenamiento de acceso frecuente , esporádico y de archivo.

Hay algunas diferencias entre las cuentas de Azure Premium Storage y las cuentas de almacenamiento estándar, en términos de instantáneas:

  • El número de instantáneas por blob en páginas de una cuenta de Premium Storage está limitada a 100. Si se supera ese límite, la operación devuelve el Snapshot Blob código de error 409 (número de instantáneas superado).

  • Puede tomar una instantánea de un blob en páginas en una cuenta de Premium Storage una vez cada diez minutos. Si se supera esa tasa, la operación devuelve el Snapshot Blob código de error 409 (velocidad de operación de instantánea superada).

  • No se puede leer una instantánea de un blob en páginas en una cuenta de Premium Storage mediante Get Blob. En esta situación, el servicio devuelve el código de error 400 (operación no válida). Sin embargo, puede llamar a Get Blob Properties y Get Blob Metadata en una instantánea.

    Para leer una instantánea, puede usar la operación Copiar blob para copiar una instantánea en otro blob en páginas de la cuenta. El blob de destino para la operación de copia no debe contener ninguna instantánea ya existente. Si el blob de destino tiene instantáneas, a continuación, Copy Blob devuelve el código de error 409 (SnapshotsPresent).

Para más información, consulte Uso de operaciones de Blob Storage con Azure Premium Storage.

Cuando se habilita el control de versiones, la creación de una instantánea de un blob también genera una nueva versión y guarda la versión anterior del blob base. El x-ms-version-id parámetro devuelve un valor opaco DateTime para la nueva versión del blob.

Facturación

Las solicitudes de precios pueden originarse en clientes que usan API de Blob Storage, ya sea directamente a través de la API REST de Blob Storage o desde una biblioteca cliente de Azure Storage. Estas solicitudes acumulan cargos por transacción. El tipo de transacción afecta a cómo se cobra la cuenta. Por ejemplo, las transacciones de lectura se acumulan en una categoría de facturación diferente a las transacciones de escritura. En la tabla siguiente se muestra la categoría de facturación de Snapshot Blob las solicitudes basadas en el tipo de cuenta de almacenamiento:

Operación Tipo de cuenta de almacenamiento Categoría de facturación
Instantánea de blob Blobs en bloques Premium
De uso general, estándar, v2
De uso general, estándar, v1
Lee operaciones.

Para obtener información sobre los precios de la categoría de facturación especificada, consulte precios Azure Blob Storage.

Consulte también

Creación de una instantánea de un blob

Autorización de solicitudes a Azure Storage

Estado y códigos de error

Códigos de error de Blob Storage