Partager via


PageBlobClient.StartCopyIncrementalAsync Méthode

Définition

L’opération StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) commence à copier un instantané de l’objet blob de pages sourceUri dans cet objet blob de pages. Le instantané est copié de telle sorte que seules les modifications différentielles entre les instantané précédemment copiées soient transférées vers la destination. Les instantanés copiés sont des copies complètes du instantané d’origine et peuvent être lus ou copiés comme d’habitude. Vous pouvez case activée le Azure.Storage.Blobs.Models.BlobProperties.CopyStatus retourné à partir du GetPropertiesAsync(BlobRequestConditions, CancellationToken) pour déterminer si la copie est terminée.

Pour plus d'informations, consultez la rubrique Objet blob de copie incrémentielle et Sauvegardez des disques de machines virtuelles Non managés Azure avec des instantanés incrémentiels.

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)

Paramètres

sourceUri
Uri

Spécifie l’objet blob de la page source d’une Uri longueur maximale de 2 Ko. L’objet blob source doit être public ou doit être authentifié via une signature d’accès partagé.

snapshot
String

Nom d’un instantané de commencer la copie à partir de sourceUri.

conditions
PageBlobRequestConditions

Facultatif PageBlobRequestConditions pour ajouter des conditions sur la copie incrémentielle dans cet objet blob de pages.

cancellationToken
CancellationToken

Facultatif CancellationToken pour propager des notifications indiquant que l’opération doit être annulée.

Retours

CopyFromUriOperation décrivant l’état de l’opération de copie incrémentielle.

Remarques

Un RequestFailedException est levée si une défaillance se produit.

La destination d’une copie incrémentielle ne doit pas exister ou doit avoir été créée avec une copie incrémentielle précédente à partir du même objet blob source. Une fois créé, l’objet blob de destination est associé de manière permanente à la source et ne peut être utilisé que pour les copies incrémentielles.

Les GetPropertiesAsync(BlobRequestConditions, CancellationToken)opérations , GetBlobsAsync(BlobTraits, BlobStates, String, CancellationToken)et GetBlobsByHierarchyAsync(BlobTraits, BlobStates, String, String, CancellationToken) indiquent si l’objet blob est un objet blob de copie incrémentielle créé de cette façon. Les objets blob de copie incrémentielle ne peuvent pas être téléchargés directement. Les seules opérations prises en charge sont GetPropertiesAsync(BlobRequestConditions, CancellationToken), StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken)et DeleteAsync(DeleteSnapshotsOption, BlobRequestConditions, CancellationToken). Les instantanés copiés peuvent être lus et supprimés comme d’habitude.

Une copie incrémentielle est effectuée de manière asynchrone sur le service et doit être interrogée pour être terminée. Vous pouvez interroger GetPropertiesAsync(BlobRequestConditions, CancellationToken) et case activée Azure.Storage.Blobs.Models.BlobProperties.CopyStatus pour déterminer quand la copie est terminée. Une fois la copie terminée, l’objet blob de destination contient une nouvelle instantané. L’opération GetPropertiesAsync(BlobRequestConditions, CancellationToken) retourne l’heure instantané du instantané nouvellement créé.

La première fois qu’une copie incrémentielle est effectuée sur un objet blob de destination, un nouvel objet blob est créé avec un instantané entièrement copié à partir de la source. Chaque appel suivant à StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) crée une nouvelle instantané en copiant uniquement les modifications différentielles de la instantané précédemment copiée. Les modifications différentielles sont calculées sur le serveur en émettant un GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) appel sur l’objet blob source instantané avec prevSnapshot défini sur le dernier instantané copié. Par conséquent, les mêmes restrictions sur GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) s’appliquent à StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken). Plus précisément, les instantanés doivent être copiés dans l’ordre croissant et si l’objet blob source est recréé à l’aide 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) de ou 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) sur StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) de nouveaux instantanés échoue.

L’espace de stockage supplémentaire consommé par le instantané copié est la taille des données différentielles transférées pendant la copie. Cela peut être déterminé en effectuant un GetAllPageRangesDiffAsync(GetPageRangesDiffOptions, CancellationToken) appel sur le instantané pour le comparer à la instantané précédente.

S’applique à