Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 se transfieren al destino las diferencias con respecto a la instantánea copiada anteriormente. Las instantáneas copiadas son copias completas de la instantánea original y puede leerlas o copiarlas como de costumbre. Esta API se admite desde la versión rest 2016-05-31.
Solicitud
Puede construir la solicitud Incremental Copy Blob de la siguiente manera. 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 para crear una instantánea incremental.
| URI de solicitud de método PUT | Versión 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 el puerto del servicio de Azure Blob Storage como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento emulada. Indique también que esta solicitud es para una copia incremental, estableciendo el comp parámetro de consulta en incrementalcopy.
| URI de solicitud de método PUT | Versión 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 de 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 obtener más información, consulte Configuración de tiempos de espera para operaciones de Blob Storage. |
Cabeceras de solicitud
En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales.
| Cabecera de solicitud | Descripción |
|---|---|
Authorization |
Obligatorio. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para más información, consulte Autorizar solicitudes a Azure Storage. |
Date o x-ms-date |
Obligatorio. Especifica la hora universal coordinada (UTC) de la solicitud. Para más información, consulte Autorizar solicitudes a Azure Storage. |
x-ms-version |
Necesario para todas las solicitudes autorizadas y opcional para las solicitudes anónimas. Especifica la versión de la operación que se va a usar para esta solicitud. Para más información, consulte Control de versiones de para 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 y 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 valor de ETag un blob de destino existente. Si el valor del ETag blob de destino no coincide con el ETag especificado para If-Match, Blob Storage devuelve el código de estado 412 (error de condición previa). |
If-None-Match |
Opcional. Un ETag valor, o el 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 |
Obligatorio. 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 con dirección URL, ya que 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 haya creado en el blob base de la instantánea. El campo de recurso firmado ( sr) de la SAS debe establecerse en b. 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úblicas; 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 más información, consulte Monitor Azure Blob Storage. |
Cuerpo de la solicitud
Ninguno.
Respuesta
La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.
Código de estado
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 de esta operación incluye los siguientes encabezados. La respuesta también puede incluir encabezados HTTP adicionales estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1 de .
| 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, consulte 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 las 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 obtener 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 usa 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 para esta operación de copia. Utilícelo con Get Blob Properties para comprobar el estado de esta operación de copia, o páselo a Abort Copy Blob para detener una copia pendiente. |
x-ms-copy-status: pending |
El estado de la operación de copia. Esto siempre está pendiente, para indicar que la copia ha comenzado 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 encabezado x-ms-client-request-id, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el encabezado x-ms-client-request-id no está presente en la solicitud, no estará presente en la respuesta. |
Cuerpo de respuesta
Ninguno.
Respuesta de ejemplo
A continuación se muestra un ejemplo de respuesta para una solicitud para realizar 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>
Autorización
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 la x-ms-copy-source solicitud.
Importante
Microsoft recomienda usar el identificador de Entra de Microsoft con identidades administradas para autorizar solicitudes a Azure Storage. Microsoft Entra ID proporciona seguridad y facilidad de uso superiores en comparación con la autorización de clave compartida.
- Microsoft Entra ID (recomendado)
- firmas de acceso compartido (SAS)
- 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. Microsoft Entra ID autentica la entidad de seguridad para devolver un token de OAuth 2.0. Después, el token se puede usar para autorizar una solicitud en Blob service.
Para obtener más información sobre la autorización mediante el identificador de Entra de Microsoft, consulte Autorizar el acceso a blobs mediante el identificador de Microsoft Entra.
Permisos
A continuación se enumeran las acciones de RBAC necesarias para que un usuario, grupo, identidad administrada o entidad de servicio de Microsoft Entra llame a la operación de Incremental Copy Blob y el rol RBAC integrado con privilegios mínimos que incluye esta acción:
- Acción de 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 Blob storage
Para más información sobre cómo asignar roles mediante Azure RBAC, consulte Asignación de un rol de Azure para el acceso a datos de blobs.
Observaciones
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 de forma permanente al 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 en copias incrementales. 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.
Realiza una copia incremental de forma asincrónica en el servicio y debe sondear para que se complete. 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 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 Incremental Copy Blob crea 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 del blob de origen. Establézcalo prevsnapshot en la instantánea copiada más recientemente. Por lo tanto, las mismas restricciones se Get Page Ranges aplican a Incremental Copy Blob. En concreto, debe copiar las 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. Puede determinar este tamaño realizando una llamada API diferencial Get Page Ranges en la instantánea para compararla con la instantánea anterior.
Consulte también
Autorizar solicitudes a Azure Storage
códigos de error y estado
Configuración de tiempos de espera para operaciones de Blob Storage