protected override async Task AppendInternal(
            bool async,
            CancellationToken cancellationToken)
        {
            if (_buffer.Length > 0)
            {
                _buffer.Position = 0;

                Response <BlobAppendInfo> response = await _appendBlobClient.AppendBlockInternal(
                    content : _buffer,
                    new AppendBlobAppendBlockOptions()
                {
                    TransactionalHashingOptions = _hashingOptions,
                    Conditions      = _conditions,
                    ProgressHandler = _progressHandler
                },
                    async : async,
                    cancellationToken : cancellationToken)
                                                     .ConfigureAwait(false);

                _conditions.IfMatch = response.Value.ETag;

                _buffer.Clear();
            }
        }