Freigeben über


PageBlobClient.StartCopyIncrementalAsync Methode

Definition

Der StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) Vorgang beginnt mit dem Kopieren einer Momentaufnahme des SourceUri-Seitenblobs in dieses Seitenblob. Die Momentaufnahme wird so kopiert, dass nur die differenziellen Änderungen zwischen den zuvor kopierten Momentaufnahme an das Ziel übertragen werden. Die kopierten Momentaufnahmen sind vollständige Kopien der ursprünglichen Momentaufnahme und können wie gewohnt ausgelesen oder kopiert werden. Sie können die Azure.Storage.Blobs.Models.BlobProperties.CopyStatus vom GetPropertiesAsync(BlobRequestConditions, CancellationToken) zurückgegebenen überprüfen, um festzustellen, ob die Kopie abgeschlossen wurde.

Weitere Informationen finden Sie unter Blob für inkrementelles Kopieren und Sichern Sie nicht verwaltete Azure-VM-Datenträger mit inkrementellen Momentaufnahmen.

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)

Parameter

sourceUri
Uri

Gibt für das Quellseitenblob eine Uri Länge von bis zu 2 KB an. Das Quellblob muss entweder öffentlich sein oder über eine Shared Access Signature authentifiziert werden.

snapshot
String

Der Name eines Momentaufnahme, mit dem das Kopieren aus sourceUri gestartet werden soll.

conditions
PageBlobRequestConditions

Optional PageBlobRequestConditions , um Bedingungen für die inkrementelle Kopie in dieses Seitenblob hinzuzufügen.

cancellationToken
CancellationToken

Optional CancellationToken zur Weitergabe von Benachrichtigungen, dass der Vorgang abgebrochen werden soll.

Gibt zurück

Ein CopyFromUriOperation , der den Status des inkrementellen Kopiervorgangs beschreibt.

Hinweise

Ein RequestFailedException wird ausgelöst, wenn ein Fehler auftritt.

Das Ziel einer inkrementellen Kopie darf entweder nicht vorhanden sein oder muss mit einer vorherigen inkrementellen Kopie aus demselben Quellblob erstellt worden sein. Nach der Erstellung ist das Zielblob dauerhaft der Quelle zugeordnet und kann nur für inkrementelle Kopien verwendet werden.

Die GetPropertiesAsync(BlobRequestConditions, CancellationToken)Vorgänge , GetBlobsAsync(BlobTraits, BlobStates, String, CancellationToken)und GetBlobsByHierarchyAsync(BlobTraits, BlobStates, String, String, CancellationToken) geben an, ob es sich bei dem Blob um ein auf diese Weise erstelltes inkrementelles Kopierblob handelt. Inkrementelle Kopierblobs werden möglicherweise nicht direkt heruntergeladen. Die einzigen unterstützten Vorgänge sind GetPropertiesAsync(BlobRequestConditions, CancellationToken), StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken)und DeleteAsync(DeleteSnapshotsOption, BlobRequestConditions, CancellationToken). Die kopierten Momentaufnahmen können wie gewohnt gelesen und gelöscht werden.

Eine inkrementelle Kopie wird asynchron für den Dienst ausgeführt und muss zum Abschluss abgefragt werden. Sie können abfragen GetPropertiesAsync(BlobRequestConditions, CancellationToken) und überprüfen Azure.Storage.Blobs.Models.BlobProperties.CopyStatus , um festzustellen, wann die Kopie abgeschlossen ist. Nach Abschluss des Kopiervorgangs enthält das Zielblob eine neue Momentaufnahme. Der GetPropertiesAsync(BlobRequestConditions, CancellationToken) Vorgang gibt die Momentaufnahme Zeit des neu erstellten Momentaufnahme zurück.

Wenn zum ersten Mal eine inkrementelle Kopie für ein Zielblob ausgeführt wird, wird ein neues Blob mit einem Momentaufnahme erstellt, der vollständig aus der Quelle kopiert wird. Bei jedem nachfolgenden Aufruf StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) von wird eine neue Momentaufnahme erstellt, indem nur die differenziellen Änderungen aus dem zuvor kopierten Momentaufnahme kopiert werden. Die differenziellen Änderungen werden auf dem Server berechnet, indem ein GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) Aufruf für das Quellblob Momentaufnahme ausgeführt wird, wobei prevSnapshot auf den zuletzt kopierten Momentaufnahme festgelegt ist. Daher gelten die gleichen Einschränkungen für GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) für StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken). Insbesondere müssen Momentaufnahmen in aufsteigender Reihenfolge kopiert werden, und wenn das Quellblob mit 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) oder 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)StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) neu erstellt wird, tritt bei neuen Momentaufnahmen ein Fehler auf.

Der zusätzliche Speicherplatz, der vom kopierten Momentaufnahme verbraucht wird, ist die Größe der differenziellen Daten, die während des Kopiervorgangs übertragen werden. Dies kann durch Ausführen eines GetAllPageRangesDiffAsync(GetPageRangesDiffOptions, CancellationToken) Aufrufs auf dem Momentaufnahme ermittelt werden, um ihn mit dem vorherigen Momentaufnahme zu vergleichen.

Gilt für: