你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

PageBlobClient.StartCopyIncremental 方法

定义

StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken)操作开始将 sourceUri 页 blob 的快照复制到此页 Blob。 复制快照,以便仅将以前复制快照之间的差异更改传输到目标。 复制的快照是原始快照的完整副本,可以像往常一样从中读取或复制。 可以检查Azure.Storage.Blobs.Models.BlobProperties.CopyStatusGetProperties(BlobRequestConditions, CancellationToken) 返回的 ,以确定复制是否已完成。

有关详细信息,请参阅 增量复制 Blob 使用增量快照备份 Azure 非托管 VM 磁盘

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

参数

sourceUri
Uri

将源页 Blob 的 指定为 Uri 最长 2 KB 的长度。 源 Blob 必须是公共的,或者必须通过共享访问签名进行身份验证。

snapshot
String

要从 sourceUri 开始复制的快照的名称。

conditions
PageBlobRequestConditions

可选 PageBlobRequestConditions ,用于将增量副本上的条件添加到此页 Blob 中。

cancellationToken
CancellationToken

可选 CancellationToken ,用于传播应取消操作的通知。

返回

CopyFromUriOperation引用增量复制操作的 。

注解

RequestFailedException如果发生故障,将引发 。

增量复制的目标必须不存在,或者必须已使用来自同一源 Blob 的先前增量副本创建。 创建后,目标 Blob 将永久与源关联,并且只能用于增量复制。

GetProperties(BlobRequestConditions, CancellationToken)GetBlobs(BlobTraits, BlobStates, String, CancellationToken)GetBlobsByHierarchy(BlobTraits, BlobStates, String, String, CancellationToken) 操作指示 Blob 是否是以这种方式创建的增量复制 Blob。 增量复制 Blob 可能不会直接下载。 唯一受支持的操作是 GetProperties(BlobRequestConditions, CancellationToken)StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken)Delete(DeleteSnapshotsOption, BlobRequestConditions, CancellationToken)。 可以像往常一样读取和删除复制的快照。

增量复制在服务上异步执行,必须轮询完成。 可以轮询GetProperties(BlobRequestConditions, CancellationToken)和检查Azure.Storage.Blobs.Models.BlobProperties.CopyStatus以确定复制何时完成。 复制完成后,目标 blob 将包含新的快照。 该GetProperties(BlobRequestConditions, CancellationToken)操作返回新创建的快照的快照时间。

首次对目标 Blob 执行增量复制时,会使用从源中完全复制的快照创建新的 blob。 每次后续调用 StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken) 都会通过仅复制先前复制快照的差异更改来创建一个新的快照。 通过在源 blob 快照发出GetAllPageRanges(GetPageRangesOptions, CancellationToken)调用来计算差异更改,并将 prevSnapshot 设置为最近复制快照。 因此,对 GetAllPageRanges(GetPageRangesOptions, CancellationToken) 的相同限制适用于 StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken)。 具体而言,必须按升序复制快照,如果使用 或 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) 重新创建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)源 Blob,则StartCopyIncremental(Uri, String, PageBlobRequestConditions, CancellationToken)新快照将失败。

复制快照占用的额外存储空间是复制期间传输的差异数据的大小。 这可以通过对快照执行调用来确定,以将其与上一GetAllPageRangesDiff(GetPageRangesDiffOptions, CancellationToken)个快照进行比较。

适用于