<PackageReference Include="Azure.Storage.Blobs" Version="12.25.0-beta.1" />

CopyFromUriOperation

public class CopyFromUriOperation : Operation<long>
An Operation<T> for tracking the status of a StartCopyFromUriAsync request. Its Value upon successful completion will be the number of bytes copied.
using Azure.Core; using Azure.Core.Pipeline; using Azure.Storage.Blobs.Specialized; using System; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Azure.Storage.Blobs.Models { public class CopyFromUriOperation { private readonly BlobBaseClient _client; private readonly CancellationToken _cancellationToken; private bool _hasCompleted; private long? _value; private Response _rawResponse; public override bool HasCompleted => _hasCompleted; public override bool HasValue => _value.HasValue; public override string Id { get; } public override long Value => OperationHelpers.GetValue(ref _value); public override Response GetRawResponse() { return _rawResponse; } public override ValueTask<Response<long>> WaitForCompletionAsync(CancellationToken cancellationToken = default(CancellationToken)) { return this.DefaultWaitForCompletionAsync<long>(cancellationToken); } public override ValueTask<Response<long>> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken) { return this.DefaultWaitForCompletionAsync<long>(pollingInterval, cancellationToken); } protected CopyFromUriOperation() { } public CopyFromUriOperation(string id, BlobBaseClient client) : this(client, id, null, CancellationToken.None) { } internal CopyFromUriOperation(BlobBaseClient client, string copyId, Response initialResponse, CancellationToken cancellationToken) { Id = copyId; _value = null; _rawResponse = initialResponse; _client = client; _cancellationToken = cancellationToken; } public override Response UpdateStatus(CancellationToken cancellationToken = default(CancellationToken)) { return UpdateStatusAsync(false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<UpdateStatusAsync>d__21))] public override ValueTask<Response> UpdateStatusAsync(CancellationToken cancellationToken = default(CancellationToken)) { <UpdateStatusAsync>d__21 stateMachine = default(<UpdateStatusAsync>d__21); stateMachine.<>t__builder = AsyncValueTaskMethodBuilder<Response>.Create(); stateMachine.<>4__this = this; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<UpdateStatusAsync>d__22))] private Task<Response> UpdateStatusAsync(bool async, CancellationToken cancellationToken) { <UpdateStatusAsync>d__22 stateMachine = default(<UpdateStatusAsync>d__22); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create(); stateMachine.<>4__this = this; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } } }