<PackageReference Include="Azure.Storage.Blobs" Version="12.29.0" />

Azure.Storage.Blobs.Specialized.AppendBlobClient

The AppendBlobClient allows you to manipulate Azure Storage append blobs. An append blob is comprised of blocks and is optimized for append operations. When you modify an append blob, blocks are added to the end of the blob only, via the AppendBlockAsync operation. Updating or deleting of existing blocks is not supported. Unlike a block blob, an append blob does not expose its block IDs. Each block in an append blob can be a different size. Beginning with x-ms-version 2022-11-02, the maximum append size is 100 MB. For previous versions, the maximum append size is 4 MB. Append blobs can include up to 50,000 blocks.
namespace Azure.Storage.Blobs.Specialized { public class AppendBlobClient : BlobBaseClient { public virtual int AppendBlobMaxAppendBlockBytes { get; } public virtual int AppendBlobMaxBlocks { get; } protected AppendBlobClient(); public AppendBlobClient(string connectionString, string blobContainerName, string blobName); public AppendBlobClient(string connectionString, string blobContainerName, string blobName, BlobClientOptions options); public AppendBlobClient(Uri blobUri, BlobClientOptions options = null); public AppendBlobClient(Uri blobUri, StorageSharedKeyCredential credential, BlobClientOptions options = null); public AppendBlobClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = null); public AppendBlobClient(Uri blobUri, TokenCredential credential, BlobClientOptions options = null); public new AppendBlobClient WithSnapshot(string snapshot); public new AppendBlobClient WithVersion(string versionId); public new AppendBlobClient WithCustomerProvidedKey(CustomerProvidedKey? customerProvidedKey); public new AppendBlobClient WithEncryptionScope(string encryptionScope); public virtual Response<BlobContentInfo> Create(AppendBlobCreateOptions options, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobContentInfo>> CreateAsync(AppendBlobCreateOptions options, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobContentInfo> Create(BlobHttpHeaders httpHeaders = null, IDictionary<string, string> metadata = null, AppendBlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobContentInfo>> CreateAsync(BlobHttpHeaders httpHeaders = null, IDictionary<string, string> metadata = null, AppendBlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobContentInfo> CreateIfNotExists(AppendBlobCreateOptions options, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobContentInfo>> CreateIfNotExistsAsync(AppendBlobCreateOptions options, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobContentInfo> CreateIfNotExists(BlobHttpHeaders httpHeaders = null, IDictionary<string, string> metadata = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobContentInfo>> CreateIfNotExistsAsync(BlobHttpHeaders httpHeaders = null, IDictionary<string, string> metadata = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobAppendInfo> AppendBlock(Stream content, byte[] transactionalContentHash, AppendBlobRequestConditions conditions, IProgress<long> progressHandler, CancellationToken cancellationToken); public virtual Task<Response<BlobAppendInfo>> AppendBlockAsync(Stream content, byte[] transactionalContentHash, AppendBlobRequestConditions conditions, IProgress<long> progressHandler, CancellationToken cancellationToken); public virtual Response<BlobAppendInfo> AppendBlock(Stream content, AppendBlobAppendBlockOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobAppendInfo>> AppendBlockAsync(Stream content, AppendBlobAppendBlockOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobAppendInfo> AppendBlockFromUri(Uri sourceUri, AppendBlobAppendBlockFromUriOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobAppendInfo>> AppendBlockFromUriAsync(Uri sourceUri, AppendBlobAppendBlockFromUriOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Response<BlobAppendInfo> AppendBlockFromUri(Uri sourceUri, HttpRange sourceRange, byte[] sourceContentHash, AppendBlobRequestConditions conditions, AppendBlobRequestConditions sourceConditions, CancellationToken cancellationToken); public virtual Task<Response<BlobAppendInfo>> AppendBlockFromUriAsync(Uri sourceUri, HttpRange sourceRange, byte[] sourceContentHash, AppendBlobRequestConditions conditions, AppendBlobRequestConditions sourceConditions, CancellationToken cancellationToken); public virtual Response<BlobInfo> Seal(AppendBlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Response<BlobInfo>> SealAsync(AppendBlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Stream OpenWrite(bool overwrite, AppendBlobOpenWriteOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task<Stream> OpenWriteAsync(bool overwrite, AppendBlobOpenWriteOptions options = null, CancellationToken cancellationToken = default(CancellationToken)); } }