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 incrementalcopy
de 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 b en . 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
La autorización es necesaria al llamar a cualquier operación de acceso a datos en Azure Storage. En la sección siguiente 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 está autorizado por separado, como se describe en los detalles del encabezado de x-ms-copy-source
solicitud.
Importante
Microsoft recomienda usar Microsoft Entra ID con identidades administradas para autorizar solicitudes a Azure Storage. Microsoft Entra ID proporciona una mayor seguridad y facilidad de uso en comparación con la autorización de clave compartida.
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 muestra la acción de RBAC necesaria para que un usuario, grupo, identidad administrada o entidad de servicio Microsoft Entra llame a la Incremental Copy Blob
operación y el rol RBAC integrado con privilegios mínimos que incluya esta acción:
- Acción RBAC de Azure:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (para escribir en un blob existente) o Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (para escribir un nuevo blob en el destino)
- Rol integrado con privilegios mínimos:Colaborador de datos de Storage Blob
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
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 puede descargar directamente blobs de copia incremental. Las únicas operaciones admitidas son Get Blob Properties
, Incremental Copy Blob
y 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 para su finalización. Consulte la Copy Blob
API para obtener más información sobre cómo sondear una copia pendiente. Una vez completada 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 realice 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. Establézcalo prevsnapshot
en la instantánea copiada más recientemente. Por lo tanto, se aplican las mismas restricciones a Get Page Ranges
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
, Incremental Copy Blob
se 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