Incremental Copy Blob (Copia incremental del blob)

La Incremental Copy Blob operación copia una instantánea del blob en páginas de origen en un blob en páginas de destino. Solo las diferencias de la instantánea copiada anteriormente se transfieren al destino. Las instantáneas copiadas son copias completas de la instantánea original y puede leerlas o copiarlas de la forma habitual. Esta API se admite desde la versión rest 2016-05-31.

Solicitud

Puede construir la Incremental Copy Blob solicitud como se indica a continuación. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento, mycontainer por el nombre del contenedor y myblob por el nombre del blob de destino. El comp parámetro de consulta, con el valor de incrementalcopy, indica que esta solicitud es crear una instantánea incremental.

URI de solicitud de método PUT Versión de HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy 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 de servicio como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento emulada. Indique también que esta solicitud es para la copia incremental; para ello, establezca el parámetro incrementalcopyde comp consulta en .

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

Para más información, consulte Uso del emulador de Azurite para el desarrollo local de Azure Storage.

Parámetros del identificador URI

Puede especificar los siguientes parámetros adicionales 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 Se requiere para todas las solicitudes autorizadas y opcional para las solicitudes anónimas. 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.
If-Modified-Since Opcional. Valor DateTime. Especifique este encabezado condicional para copiar el blob solo si el blob de destino se ha modificado desde la fecha u hora especificadas. Si el blob de destino 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 copiar el blob solo si el blob de destino no se ha modificado desde la fecha y hora especificadas. Si se ha modificado el blob de destino, 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 copiar el blob, solo si el valor especificado ETag coincide con el ETag valor de un blob de destino existente. Si el del ETag blob de destino no coincide con el especificado para If-Match, Blob Storage devuelve el ETag código de estado 412 (error de condición previa).
If-None-Match Opcional. Valor ETag o carácter comodín (*).

Especifique un ETag valor para este encabezado condicional para copiar el blob, solo si el valor especificado ETag no coincide con el ETag valor del blob de destino.

Especifique el carácter comodín (*) para realizar la operación, solo si el blob de destino no existe.

Si no se cumple la condición especificada, Blob Storage devuelve el código de estado 412 (error de condición previa).
x-ms-copy-source:name Necesario. Especifica el nombre de la instantánea de blob en páginas de origen.

Este valor es una dirección URL de hasta 2 kibibytes (KiB) de longitud que especifica una instantánea de blob en páginas. El valor debe estar codificado para URL tal y como aparecería en un URI de solicitud. El URI del blob de origen se puede autorizar de una de estas dos maneras:

El URI del blob de origen puede hacer referencia a una instantánea de blob en páginas, pero debe incluir un token de firma de acceso compartido (SAS) que se creó en el blob base de la instantánea. El campo recurso firmado (sr) de la SAS debe establecerse ben . Por ejemplo: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature>.

El URI del blob de origen puede hacer referencia a una instantánea de blob en páginas pública; por ejemplo, https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 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.

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 202 (Aceptado). 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
ETag Contiene un valor que puede usar para realizar operaciones condicionalmente. El valor está entre comillas.
Last-Modified Fecha y la hora en que se modificó por última vez el blob. Para obtener más información, vea Representación de valores de fecha y hora en encabezados.

Cualquier operación de escritura en el blob (incluidas las actualizaciones de los metadatos o propiedades del blob) cambia la hora de la última modificación del blob.
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 usada para ejecutar la solicitud.
Date Valor de fecha y hora UTC que indica la hora a la que se inició la respuesta. El servicio genera este valor.
x-ms-copy-id: <id> Identificador de cadena de esta operación de copia. Úselo con Get Blob Properties para comprobar el estado de esta operación de copia o pasar a Abort Copy Blob para detener una copia pendiente.
x-ms-copy-status: pending Estado de la operación de copia. Esto siempre está pendiente, para indicar que la copia se ha iniciado y está en curso.
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.

Respuesta de muestra

A continuación se muestra una respuesta de ejemplo para que una solicitud realice una copia incremental:

Response Status:
HTTP/1.1 202 Accepted

Response Headers: 
Last-Modified: <date> 
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date> 

Authorization

Se requiere autorización al llamar a cualquier operación de acceso a datos en Azure Storage. En la siguiente sección se describe cómo se puede autorizar el objeto de destino de la Incremental Copy Blob operación. El acceso al blob o archivo de origen se autoriza por separado, como se describe en los detalles del encabezado de x-ms-copy-source solicitud.

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 un usuario, grupo o entidad de servicio de Microsoft Entra para llamar a la Incremental Copy Blob operación y el rol RBAC integrado con privilegios mínimos que incluye esta acción:

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

Comentarios

El destino de una copia incremental no debe existir o debe haberse creado con una copia incremental anterior del mismo blob de origen. Después de crearlo, el blob de destino se asocia permanentemente con el origen y solo se puede usar para copias incrementales. Las Get Blob Properties API y List Blobs indican si el blob es un blob de copia incremental creado de esta manera.

No se pueden descargar directamente blobs de copia incremental. Las únicas operaciones admitidas son Get Blob Properties, Incremental Copy Bloby Delete Blob. Puede leer y eliminar las instantáneas copiadas como de costumbre.

Realice una copia incremental de forma asincrónica en el servicio y debe sondear la finalización. Consulte la Copy Blob API para obtener más información sobre cómo sondear una copia pendiente. Cuando se complete la copia, el blob de destino contendrá una nueva instantánea. La Get Blob Properties API devuelve la hora de instantánea de la instantánea recién creada.

La primera vez que se realiza una copia incremental en un blob de destino, se crea un nuevo blob, con una instantánea que se copia completamente del origen. Cada llamada posterior a crea Incremental Copy Blob una nueva instantánea copiando solo los cambios diferenciales de la instantánea copiada anteriormente.

Los cambios diferenciales se calculan en el servidor mediante la emisión de una Get Page Ranges llamada en la instantánea de blob de origen. Establezca prevsnapshot en la instantánea copiada más recientemente. Por lo tanto, se aplican las mismas restricciones Get Page Ranges a Incremental Copy Blob. En concreto, debe copiar instantáneas en orden ascendente y, si el blob de origen se vuelve a crear mediante Put Blob o Copy Blob, se Incremental Copy Blob producirá un error en las nuevas instantáneas.

El espacio de almacenamiento adicional consumido por la instantánea copiada es el tamaño de los datos diferenciales transferidos durante la copia. Para determinar este tamaño, realice una llamada API diferencial Get Page Ranges en la instantánea para compararlo con la instantánea anterior.

Consulte también

Autorización de solicitudes a Azure Storage
Estado y códigos de error
Establecimiento de tiempos de espera para las operaciones de Blob Storage