Compartir a través de


PageBlobClient.StartCopyIncrementalAsync Método

Definición

La StartCopyIncrementalAsync(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 GetPropertiesAsync(BlobRequestConditions, CancellationToken) para determinar si se ha completado la copia.

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

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

Parámetros

sourceUri
Uri

Especifica el objeto 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 a través de 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 en este blob en páginas.

cancellationToken
CancellationToken

Opcional CancellationToken para propagar notificaciones que se deben cancelar en la operación.

Devoluciones

que CopyFromUriOperation describe el estado de la operación de copia incremental.

Comentarios

RequestFailedException Se producirá un error 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 GetPropertiesAsync(BlobRequestConditions, CancellationToken)operaciones , GetBlobsAsync(BlobTraits, BlobStates, String, CancellationToken)y GetBlobsByHierarchyAsync(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 GetPropertiesAsync(BlobRequestConditions, CancellationToken), StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken)y DeleteAsync(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 GetPropertiesAsync(BlobRequestConditions, CancellationToken) y comprobar Azure.Storage.Blobs.Models.BlobProperties.CopyStatus para determinar cuándo se ha completado la copia. Una vez completada la copia, el blob de destino contendrá una nueva instantánea. La GetPropertiesAsync(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 StartCopyIncrementalAsync(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 GetAllPageRangesAsync(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 a GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken)StartCopyIncrementalAsync(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.UploadPagesAsync(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.StartCopyFromUriAsync(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, StartCopyIncrementalAsync(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 GetAllPageRangesDiffAsync(GetPageRangesDiffOptions, CancellationToken) llamada en la instantánea para compararla con la instantánea anterior.

Se aplica a