Incremental Copy Blob (Copia incremental del blob)Incremental Copy 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.The Incremental Copy Blob operation copies a snapshot of the source page blob to a destination page blob. La instantánea se copia de forma que solo los cambios diferenciales entre la instantánea copiada anteriormente se transfieran al destino.The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. Las instantáneas copiadas son copias completas de la instantánea original y se pueden leer o copiar de la forma habitual.The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. Esta API es compatible desde la versión de REST 2016-05-31.This API is supported since REST version 2016-05-31.

SolicitudRequest

La solicitud Incremental Copy Blob se puede construir como sigue.The Incremental Copy Blob request may be constructed as follows. Se recomienda HTTPS.HTTPS is recommended. Reemplace mi cuenta por el nombre de la cuenta de almacenamiento, alcontainer por el nombre del contenedor y mi BLOB por el nombre del BLOB de destino.Replace myaccount with the name of your storage account, mycontainer with the name of your container, and myblob with the name of your destination blob. El parámetro de consulta COMP con el valor de incrementalcopy indica que esta solicitud es para crear una instantánea incremental:The comp query parameter with value of incrementalcopy indicates this request is to create an incremental snapshot:

URI de solicitud del método PUTPUT Method Request URI Versión HTTPHTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy HTTP/1.1HTTP/1.1

URI del servicio de almacenamiento emuladoEmulated storage service URI

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto Blob service como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento emulado.When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name. También indique que esta solicitud es para copia incremental estableciendo el parámetro de consulta COMP en el valor incrementalcopy:Also indicate that this request is for incremental copy by setting the comp query parameter to the value incrementalcopy:

URI de solicitud del método PUTPUT Method Request URI Versión HTTPHTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy HTTP/1.1HTTP/1.1

Para obtener más información, vea uso del emulador de Azure Storage para desarrollo y pruebas.For more information, see Using the Azure Storage Emulator for Development and Testing.

Parámetros de identificador URIURI Parameters

Se pueden especificar los parámetros adicionales siguientes en el URI de solicitud.The following additional parameters may be specified on the request URI.

ParámetroParameter DescripciónDescription
timeout Opcional.Optional. El parámetro timeout se expresa en segundos.The timeout parameter is expressed in seconds. Para obtener más información, consulte configuración de tiempos de espera para las operaciones de BLOB Service.For more information, see Setting Timeouts for Blob Service Operations.

Encabezados de solicitudRequest Headers

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.The following table describes required and optional request headers.

Encabezado de la solicitudRequest Header DescripciónDescription
Authorization Obligatorio.Required. Especifica el esquema de autorización, el nombre de cuenta y la firma.Specifies the authorization scheme, account name, and signature. Para obtener más información, consulte autorización de solicitudes para Azure Storage.For more information, see Authorize requests to Azure Storage.
Date o x-ms-dateDate or x-ms-date Obligatorio.Required. Especifica la hora universal coordinada (UTC) de la solicitud.Specifies the Coordinated Universal Time (UTC) for the request. Para obtener más información, consulte autorización de solicitudes para Azure Storage.For more information, see Authorize requests to Azure Storage.
x-ms-version Obligatorio para todas las solicitudes autorizadas, es opcional para las solicitudes anónimas.Required for all authorized requests, optional for anonymous requests. Especifica la versión de la operación que se utiliza para esta solicitud.Specifies the version of the operation to use for this request. Para obtener más información, vea control de versiones de los servicios de Azure Storage.For more information, see Versioning for the Azure Storage Services.
If-Modified-Since Opcional.Optional. Un valor DateTime.A DateTime value. Especifique este encabezado condicional para copiar el blob solo si el blob de destino se ha modificado desde la fecha u hora especificadas.Specify this conditional header to copy the blob only if the destination blob has been modified since the specified date/time. Si el blob de destino no se ha modificado, el servicio Blob devuelve el código de estado 412 (Error de condición previa).If the destination blob has not been modified, the Blob service returns status code 412 (Precondition Failed).
If-Unmodified-Since Opcional.Optional. Un valor DateTime.A DateTime value. Especifique este encabezado condicional para copiar el blob solo si el blob de destino no se ha modificado desde la fecha u hora especificadas.Specify this conditional header to copy the blob only if the destination blob has not been modified since the specified date/time. Si el blob de destino se ha modificado, el servicio Blob devuelve el código de estado 412 (Error de condición previa).If the destination blob has been modified, the Blob service returns status code 412 (Precondition Failed).
If-Match Opcional.Optional. Valor ETag.An ETag value. Especifique un valor ETag para este encabezado condicional para copiar el BLOB solo si el valor ETag especificado coincide con el valor ETag de un BLOB de destino existente.Specify an ETag value for this conditional header to copy the blob only if the specified ETag value matches the ETag value for an existing destination blob. Si la ETag del BLOB de destino no coincide con la ETag especificada para IF-Match, el Blob service devuelve el código de estado 412 (error de condición previa).If the ETag for the destination blob does not match the ETag specified for If-Match, the Blob service returns status code 412 (Precondition Failed).
If-None-Match Opcional.Optional. Un valor ETag o el carácter comodín ( * ).An ETag value, or the wildcard character (*).

Especifique un valor ETag para este encabezado condicional para copiar el blob solo si el valor ETag especificado no coincide con el del blob de destino.Specify an ETag value for this conditional header to copy the blob only if the specified ETag value does not match the ETag value for the destination blob.

Especifique el carácter comodín ( * ) para realizar la operación solo si el BLOB de destino no existe.Specify the wildcard character (*) to perform the operation only if the destination blob does not exist.

Si no se cumple la condición especificada, Blob service devuelve el código de estado 412 (Error de condición previa).If the specified condition isn't met, the Blob service returns status code 412 (Precondition Failed).
x-ms-copy-source:name Obligatorio.Required. Especifica el nombre de la instantánea de BLOB de la página de origen.Specifies the name of the source page blob snapshot.

Este valor es una dirección URL de hasta 2 KiB de longitud que especifica una instantánea de BLOB en páginas.This value is a URL of up to 2 KiB in length that specifies a page blob snapshot. El valor debe estar codificado para URL tal y como aparecería en un URI de solicitud.The value should be URL-encoded as it would appear in a request URI. El BLOB de origen debe ser público o debe estar autorizado a través de una firma de acceso compartido.The source blob must either be public or must be authorized via a shared access signature. Este es un ejemplo de una dirección URL de BLOB de origen:Here is an example of a source blob URL:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
x-ms-client-request-id Opcional.Optional. Proporciona un valor opaco generado por el cliente con un límite de 1 KiB de caracteres que se registra en los registros de análisis cuando el registro de análisis de almacenamiento está habilitado.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes recibidas por el servidor.Using this header is highly recommended for correlating client-side activities with requests received by the server. Para obtener más información, consulte acerca del registro de Storage Analytics y el registro de Azure: uso de registros para realizar un seguimiento de las solicitudes de almacenamiento.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

Cuerpo de la solicitudRequest Body

Ninguno.None.

RespuestaResponse

La respuesta incluye un código de Estado HTTP, un conjunto de encabezados de respuesta.The response includes an HTTP status code, a set of response headers.

Código de estadoStatus Code

Una operación correcta devuelve el código de estado 202 (Aceptado).A successful operation returns status code 202 (Accepted).

Para obtener información sobre los códigos de estado, vea códigos de estado y de error.For information about status codes, see Status and Error Codes.

Encabezados de respuestaResponse Headers

La respuesta para esta operación incluye los encabezados siguientes.The response for this operation includes the following headers. La respuesta también puede incluir otros encabezados HTTP estándar.The response may also include additional standard HTTP headers. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.All standard headers conform to the HTTP/1.1 protocol specification.

SintaxisSyntax DescripciónDescription
ETag La ETag contiene un valor que se puede utilizar para realizar operaciones condicionales.The ETag contains a value that you can use to perform operations conditionally. Consulte especificar encabezados condicionales para las operaciones de BLOB Service para obtener más información.See Specifying Conditional Headers for Blob Service Operations for more information. El valor ETag estará entre comillas.The ETag value will be in quotes.
Last-Modified La fecha y la hora en la que se modificó por última vez el blob.The date/time that the blob was last modified. El formato de la fecha sigue las convenciones de RFC 1123.The date format follows RFC 1123. Para obtener más información, consulte representación de valores de fecha y hora en encabezados.For more information, see Representation of Date/Time Values in Headers.

Cualquier operación de escritura realizada en el blob (incluidas las actualizaciones de los metadatos o las propiedades del blob) cambia la hora de la última modificación del blob.Any write operation on the blob (including updates on the blob's metadata or properties) changes the last modified time of the blob.
x-ms-request-id Este encabezado identifica de forma única la solicitud que se realizó y se puede utilizar para solucionar problemas relacionados con esta.This header uniquely identifies the request that was made and can be used for troubleshooting the request. Para obtener más información, consulte solución de problemas de las operaciones de API.For more information, see Troubleshooting API Operations.
x-ms-version Indica la versión del servicio Blob utilizado para ejecutar la solicitud.Indicates the version of the Blob service used to execute the request.
Date Valor de fecha y hora UTC generado por el servicio que indica la hora a la que se inició la respuesta.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-copy-id: <id> Identificador de cadena para esta operación de copia.String identifier for this copy operation. Use con las propiedades de Get BLOB para comprobar el estado de esta operación de copia o pase a Abort COPY BLOB para anular una copia pendiente.Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy.
x-ms-copy-status: pending Estado de la operación de copia.State of the copy operation. Siempre está pendiente para indicar que la copia se ha iniciado y está en curso.This is always pending to indicate that the copy has started and is in progress.
x-ms-client-request-id Este encabezado se puede usar para solucionar problemas de las solicitudes y las respuestas correspondientes.This header can be used to troubleshoot requests and corresponding responses. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado si está presente en la solicitud y el valor tiene como máximo 1024 caracteres ASCII visibles.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. Si el x-ms-client-request-id encabezado no está presente en la solicitud, este encabezado no estará presente en la respuesta.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

Cuerpo de la respuestaResponse Body

Ninguno.None.

Respuesta de ejemploSample Response

A continuación se muestra una respuesta de ejemplo para una solicitud para realizar una copia incremental:The following is a sample response for a request to perform an incremental copy:

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> 

AuthorizationAuthorization

El propietario de la cuenta de destino o una firma de acceso compartido del BLOB de destino pueden llamar a esta operación.This operation can be called by the destination account owner or with a shared access signature of the destination blob.

El acceso al BLOB o archivo de origen se autoriza por separado, como se describe en los detalles del encabezado de solicitud x-MS-Copy-Source.Access to the source blob or file is authorized separately, as described in the details for the request header x-ms-copy-source.

ObservacionesRemarks

El destino de una copia incremental no debe existir o debe haberse creado con una copia incremental anterior del mismo BLOB de origen.The destination of an incremental copy must either not exist, or must have been created with a previous incremental copy from the same source blob. Una vez creado, el BLOB de destino se asocia de forma permanente con el origen y solo se puede usar para copias incrementales.Once created, the destination blob is permanently associated with the source and may only be used for incremental copies. Las API obtener propiedades de BLOB y enumerar blobs indican si el BLOB es un BLOB de copia incremental creado de esta manera.The Get Blob Properties and List Blobs APIs indicate whether the blob is an incremental copy blob created in this way. Es posible que los blobs de copia incremental no se descarguen directamente.Incremental copy blobs may not be downloaded directly. Las únicas operaciones admitidas son obtener propiedades de BLOB, copiar BLOB de copia incremental y eliminar BLOB.The only supported operations are Get Blob Properties, Incremental Copy Blob, and Delete Blob. Las instantáneas copiadas se pueden leer y eliminar como de costumbre.The copied snapshots may be read and deleted as usual.

Una copia incremental se realiza de forma asincrónica en el servicio y se debe sondear para su finalización.An incremental copy is performed asynchronously on the service and must be polled for completion. Consulte la API de copia de blobs para obtener más información sobre cómo sondear una copia pendiente.See the Copy Blob API for details on how to poll a pending copy. Cuando se complete la copia, el BLOB de destino contendrá una nueva instantánea.When the copy completes, the destination blob will contain a new snapshot. La API de obtención de propiedades de BLOB devuelve la hora de la instantánea que se acaba de crear.The Get Blob Properties API returns the snapshot time of the newly created snapshot.

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 totalmente del origen.The first time an incremental copy is performed on a destination blob, a new blob is created with a snapshot that is fully copied from the source. Cada llamada subsiguiente a BLOB de copia incremental creará una instantánea nueva copiando solo los cambios diferenciales de la instantánea copiada anteriormente.Each subsequent call to Incremental Copy Blob will create a new snapshot by copying only the differential changes from the previously copied snapshot. Los cambios diferenciales se calculan en el servidor mediante la emisión de una llamada Get Page Ranges en la instantánea de BLOB de origen con prevsnapshot establecida en la instantánea copiada más recientemente.The differential changes are computed on the server by issuing a Get Page Ranges call on the source blob snapshot with prevsnapshot set to the most recently copied snapshot. Por lo tanto, las mismas restricciones en obtener intervalos de páginas se aplican a un BLOB de copia incremental.Therefore, the same restrictions on Get Page Ranges apply to Incremental Copy Blob. En concreto, las instantáneas se deben copiar en orden ascendente y, si el BLOB de origen se vuelve a crear con Put BLOB o COPY BLOB, se producirá un error en el BLOB de copia incremental en nuevas instantáneas.Specifically, snapshots must be copied in ascending order and if the source blob is recreated using Put Blob or Copy Blob then Incremental Copy Blob on new snapshots will fail.

El espacio de almacenamiento adicional consumido por la instantánea copiada es el tamaño de los datos diferenciales transferidos durante la copia.The additional storage space consumed by the copied snapshot is the size of the differential data transferred during the copy. Esto puede determinarse mediante la realización de una llamada de API diferencial obtener intervalos de páginas en la instantánea para compararla con la instantánea anterior.This can be determined by performing a differential Get Page Ranges API call on the snapshot to compare it to the previous snapshot.

Vea tambiénSee also

Autorizar solicitudes para Azure Storage Authorize requests to Azure Storage
Códigos de estado y de error Status and Error Codes
Establecer los tiempos de espera para las operaciones del servicio BlobSetting Timeouts for Blob Service Operations