Compartir a través de


PageBlobClient.StartCopyIncremental Método

Definición

La StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken) operación comienza a copiar una instantánea del blob en páginas sourceUri en este blob en páginas. La instantánea se copia de forma que solo se transfieren los cambios diferenciales entre la instantánea copiada anteriormente al destino. Las instantáneas copiadas son copias completas de la instantánea original y se pueden leer o copiar de la forma habitual. Puede comprobar el Azure.Storage.Blobs.Models.BlobProperties.CopyStatus devuelto desde GetProperties(BlobRequestConditions, CancellationToken) para determinar si la copia se ha completado.

Para obtener más información, vea Blob de copia incremental y Realice una copia de seguridad de los discos de máquina virtual no administrados de Azure con instantáneas incrementales.

public virtual Azure.Storage.Blobs.Models.CopyFromUriOperation StartCopyIncremental (Uri sourceUri, string snapshot, Azure.Storage.Blobs.Models.PageBlobRequestConditions conditions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member StartCopyIncremental : Uri * string * Azure.Storage.Blobs.Models.PageBlobRequestConditions * System.Threading.CancellationToken -> Azure.Storage.Blobs.Models.CopyFromUriOperation
override this.StartCopyIncremental : Uri * string * Azure.Storage.Blobs.Models.PageBlobRequestConditions * System.Threading.CancellationToken -> Azure.Storage.Blobs.Models.CopyFromUriOperation
Public Overridable Function StartCopyIncremental (sourceUri As Uri, snapshot As String, Optional conditions As PageBlobRequestConditions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As CopyFromUriOperation

Parámetros

sourceUri
Uri

Especifica al blob en páginas de origen como un Uri máximo de 2 KB de longitud. El blob de origen debe ser público o debe autenticarse mediante una firma de acceso compartido.

snapshot
String

Nombre de una instantánea para empezar a copiar desde sourceUri.

conditions
PageBlobRequestConditions

Opcional PageBlobRequestConditions para agregar condiciones en la copia incremental a este blob en páginas.

cancellationToken
CancellationToken

Opcional CancellationToken para propagar las notificaciones que debe cancelarse la operación.

Devoluciones

Que CopyFromUriOperation hace referencia a la operación de copia incremental.

Comentarios

RequestFailedException Se producirá una excepción si se produce un error.

El destino de una copia incremental no debe existir o debe haberse creado con una copia incremental anterior del mismo blob de origen. Una vez creado, el blob de destino se asocia permanentemente con el origen y solo se puede usar para copias incrementales.

Las GetProperties(BlobRequestConditions, CancellationToken)operaciones , GetBlobs(BlobTraits, BlobStates, String, CancellationToken)y GetBlobsByHierarchy(BlobTraits, BlobStates, String, String, CancellationToken) indican si el blob es un blob de copia incremental creado de esta manera. Es posible que los blobs de copia incremental no se descarguen directamente. Las únicas operaciones admitidas son GetProperties(BlobRequestConditions, CancellationToken), StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken)y Delete(DeleteSnapshotsOption, BlobRequestConditions, CancellationToken). Las instantáneas copiadas se pueden leer y eliminar como de costumbre.

Una copia incremental se realiza de forma asincrónica en el servicio y se debe sondear para su finalización. Puede sondear GetProperties(BlobRequestConditions, CancellationToken) y comprobar Azure.Storage.Blobs.Models.BlobProperties.CopyStatus para determinar cuándo se ha completado la copia. Cuando se complete la copia, el blob de destino contendrá una nueva instantánea. La GetProperties(BlobRequestConditions, CancellationToken) operación 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 StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken) creará 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 GetAllPageRanges(GetPageRangesOptions, CancellationToken) llamada en la instantánea de blob de origen con prevSnapshot establecido en la instantánea copiada más recientemente. Por lo tanto, se aplican las mismas restricciones GetAllPageRanges(GetPageRangesOptions, CancellationToken) a StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken). En concreto, las instantáneas se deben copiar en orden ascendente y, si el blob de origen se vuelve a crear mediante Azure.Storage.Blobs.Specialized.PageBlobClient.UploadPages(System.IO.Stream,System.Int64,System.Byte[],Azure.Storage.Blobs.Models.PageBlobRequestConditions,System.IProgress{System.Int64},System.Threading.CancellationToken) o Azure.Storage.Blobs.Specialized.BlobBaseClient.StartCopyFromUri(System.Uri,System.Collections.Generic.IDictionary{System.String,System.String},System.Nullable{Azure.Storage.Blobs.Models.AccessTier},Azure.Storage.Blobs.Models.BlobRequestConditions,Azure.Storage.Blobs.Models.BlobRequestConditions,System.Nullable{Azure.Storage.Blobs.Models.RehydratePriority},System.Threading.CancellationToken) , a continuación, StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken) 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. Esto se puede determinar realizando una GetAllPageRangesDiff(GetPageRangesDiffOptions, CancellationToken) llamada en la instantánea para compararla con la instantánea anterior.

Se aplica a