Partilhar via


PageBlobClient.StartCopyIncrementalAsync Método

Definição

A StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) operação começa a copiar um instantâneo do blob de páginas sourceUri para esse blob de páginas. O instantâneo é copiado de modo que apenas as alterações diferenciais entre as instantâneo copiadas anteriormente sejam transferidas para o destino. Os instantâneos copiados são cópias completas do instantâneo original e podem ser lidos ou copiados de como de costume. Você pode marcar o Azure.Storage.Blobs.Models.BlobProperties.CopyStatus retornado do GetPropertiesAsync(BlobRequestConditions, CancellationToken) para determinar se o escopo foi concluído.

Para obter mais informações, consulte Blob de Cópia Incremental e Faça backup de discos de VM não gerenciados do Azure com instantâneos incrementais.

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 o para o blob de página de origem como um Uri comprimento de até 2 KB. O blob de origem deve ser público ou deve ser autenticado por meio de uma assinatura de acesso compartilhado.

snapshot
String

O nome de um instantâneo para começar a copiar de sourceUri.

conditions
PageBlobRequestConditions

Opcional PageBlobRequestConditions para adicionar condições na cópia incremental a esse blob de páginas.

cancellationToken
CancellationToken

Opcional CancellationToken para propagar notificações de que a operação deve ser cancelada.

Retornos

Um CopyFromUriOperation que descreve o estado da operação de cópia incremental.

Comentários

Um RequestFailedException será gerado se ocorrer uma falha.

O destino de uma cópia incremental não deve existir ou deve ter sido criado com uma cópia incremental anterior do mesmo blob de origem. Depois de criado, o blob de destino é permanentemente associado à origem e só pode ser usado para cópias incrementais.

As GetPropertiesAsync(BlobRequestConditions, CancellationToken)operações , GetBlobsAsync(BlobTraits, BlobStates, String, CancellationToken)e GetBlobsByHierarchyAsync(BlobTraits, BlobStates, String, String, CancellationToken) indicam se o blob é um blob de cópia incremental criado dessa maneira. Blobs de cópia incremental podem não ser baixados diretamente. As únicas operações com suporte são GetPropertiesAsync(BlobRequestConditions, CancellationToken), StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken)e DeleteAsync(DeleteSnapshotsOption, BlobRequestConditions, CancellationToken). Os instantâneos copiados podem ser lidos e excluídos como de costume.

Uma cópia incremental é executada de forma assíncrona no serviço e deve ser sondada para conclusão. Você pode sondar GetPropertiesAsync(BlobRequestConditions, CancellationToken) e marcar Azure.Storage.Blobs.Models.BlobProperties.CopyStatus para determinar quando a cópia foi concluída. Quando a cópia for concluída, o blob de destino conterá um novo instantâneo. A GetPropertiesAsync(BlobRequestConditions, CancellationToken) operação retorna a instantâneo hora do instantâneo recém-criado.

Na primeira vez que uma cópia incremental é executada em um blob de destino, um novo blob é criado com um instantâneo totalmente copiado da origem. Cada chamada subsequente para StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) criará um novo instantâneo copiando apenas as alterações diferenciais do instantâneo copiado anteriormente. As alterações diferenciais são computadas no servidor emitindo uma GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) chamada no blob de origem instantâneo com prevSnapshot definido como o instantâneo copiado mais recentemente. Portanto, as mesmas restrições em GetAllPageRangesAsync(GetPageRangesOptions, CancellationToken) se aplicam a StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken). Especificamente, os instantâneos devem ser copiados em ordem crescente e, se o blob de origem for recriado usando 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) 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)StartCopyIncrementalAsync(Uri, String, PageBlobRequestConditions, CancellationToken) em novos instantâneos, falhará.

O espaço de armazenamento adicional consumido pelo instantâneo copiado é o tamanho dos dados diferenciais transferidos durante a cópia. Isso pode ser determinado executando uma GetAllPageRangesDiffAsync(GetPageRangesDiffOptions, CancellationToken) chamada no instantâneo para compará-la com o instantâneo anterior.

Aplica-se a