CasCap.Api.Azure.Storage
1.4.5
Prefix Reserved
See the version list below for details.
dotnet add package CasCap.Api.Azure.Storage --version 1.4.5
NuGet\Install-Package CasCap.Api.Azure.Storage -Version 1.4.5
<PackageReference Include="CasCap.Api.Azure.Storage" Version="1.4.5" />
<PackageVersion Include="CasCap.Api.Azure.Storage" Version="1.4.5" />
<PackageReference Include="CasCap.Api.Azure.Storage" />
paket add CasCap.Api.Azure.Storage --version 1.4.5
#r "nuget: CasCap.Api.Azure.Storage, 1.4.5"
#:package CasCap.Api.Azure.Storage@1.4.5
#addin nuget:?package=CasCap.Api.Azure.Storage&version=1.4.5
#tool nuget:?package=CasCap.Api.Azure.Storage&version=1.4.5
CasCap.Api.Azure.Storage
Helper library for Azure Storage Services. Provides abstract base service classes for Blob, Queue, and Table storage operations with both connection string and TokenCredential authentication.
Services / Extensions
| Type | Name | Description |
|---|---|---|
| Interface | IAzBlobStorageBase |
Contract for Azure Blob Storage container operations (upload, download, list, delete). |
| Interface | IAzQueueStorageBase |
Contract for Azure Queue Storage operations (enqueue, dequeue). |
| Interface | IAzTableStorageBase |
Contract for Azure Table Storage CRUD operations with batch support. |
| Service | AzBlobStorageBase |
Abstract base implementing IAzBlobStorageBase. Supports block blobs, page blobs, and append blobs. |
| Service | AzQueueStorageBase |
Abstract base implementing IAzQueueStorageBase. Handles Base64 message encoding and JSON serialization. |
| Service | AzTableStorageBase |
Abstract base implementing IAzTableStorageBase. Supports batch upsert, delete, and query with parallel partition processing. |
| Extension | LocalExtensions |
Extension methods for Table Storage key validation (IsKeyValid), TableServiceClient.ExistsAsync, and date-from-filename parsing. |
| Message | AzTableStorageArgs |
Event args for BatchCompletedEvent, carrying batch metadata (table name, partition key, count, remaining). |
Key Methods — AzBlobStorageBase
CreateContainerIfNotExists(CancellationToken)— Creates the blob container if it does not exist.DownloadBlobAsync(string blobName, CancellationToken)— Downloads blob content as a byte array.ListContainerBlobs(string? prefix, CancellationToken)— Lists blobs in the container.GetBlobPrefixes(string? prefix, CancellationToken)— Retrieves virtual directory prefixes.DeleteBlob(string blobName, CancellationToken)— Deletes a blob.PageBlobTest(string path, CancellationToken)— Page blob creation and write test.
Key Methods — AzQueueStorageBase
Enqueue<T>(T obj)/Enqueue<T>(List<T> objs)— Serializes and enqueues messages.DequeueSingle<T>()— Dequeues and deserializes a single message.DequeueMany<T>(int limit)— Dequeues and deserializes multiple messages.
Key Methods — AzTableStorageBase
GetTables(CancellationToken)— Lists all tables in the storage account.GetTableClient(string tableName, bool CreateIfNotExists, CancellationToken)— Gets aTableClientfor a table.UploadData<T>(TableClient, List<T>, bool useParallelism, CancellationToken)— Batch upsert entities.UpsertEntity<T>(string tableName, T entity, CancellationToken)— Upserts a single entity.DeleteData<T>(TableClient, List<T>, CancellationToken)— Batch delete entities.GetEntities<T>(TableClient, ...)— Queries entities with optional filtering and paging.
Class Hierarchy
Abstract base classes for Azure Storage services:
classDiagram
direction TB
IAzBlobStorageBase <|.. AzBlobStorageBase
IAzQueueStorageBase <|.. AzQueueStorageBase
IAzTableStorageBase <|.. AzTableStorageBase
AzBlobStorageBase <|-- YourBlobService
AzQueueStorageBase <|-- YourQueueService
AzTableStorageBase <|-- YourTableService
class IAzBlobStorageBase {
<<interface>>
+CreateContainerIfNotExists() Task
+DownloadBlobAsync(name) Task~byte[]~
+ListContainerBlobs(prefix) IAsyncEnumerable~BlobItem~
+DeleteBlob(name) Task
}
class AzBlobStorageBase {
<<abstract>>
#BlobServiceClient Client
#ILogger Logger
+CreateContainerIfNotExists() Task
+DownloadBlobAsync(name) Task~byte[]~
+UploadBlob(name, data) Task
+PageBlobTest(path) Task
}
class IAzQueueStorageBase {
<<interface>>
+Enqueue~T~(obj) Task
+DequeueSingle~T~() Task~T~
+DequeueMany~T~(limit) Task~List~T~~
}
class AzQueueStorageBase {
<<abstract>>
#QueueServiceClient Client
#ILogger Logger
+Enqueue~T~(obj) Task
+Enqueue~T~(objs) Task
+DequeueSingle~T~() Task~T~
+DequeueMany~T~(limit) Task~List~T~~
}
class IAzTableStorageBase {
<<interface>>
+GetTables() AsyncPageable~TableItem~
+UpsertEntity~T~(table, entity) Task
+GetEntities~T~(table) AsyncPageable~T~
}
class AzTableStorageBase {
<<abstract>>
#TableServiceClient Client
#ILogger Logger
+event BatchCompletedEvent
+GetTables() AsyncPageable~TableItem~
+UploadData~T~(client, entities, parallel) Task
+UpsertEntity~T~(table, entity) Task
+DeleteData~T~(client, entities) Task
+GetEntities~T~(client, filter) AsyncPageable~T~
}
class YourBlobService {
+UploadImage(bytes) Task
+GetImage(id) Task~byte[]~
}
class YourQueueService {
+EnqueueMessage(msg) Task
+ProcessMessages() Task
}
class YourTableService {
+SaveEntity(entity) Task
+QueryEntities(filter) Task~List~
}
AzBlobStorageBase ..> BlobServiceClient : uses
AzQueueStorageBase ..> QueueServiceClient : uses
AzTableStorageBase ..> TableServiceClient : uses
Usage Pattern:
- Inherit from appropriate abstract base class
- Pass connection string or
TokenCredentialto base constructor - Use protected
ClientandLoggerfields - Call base methods or add domain-specific operations
Configuration
No configuration model. Services are constructed directly with connection strings or TokenCredential.
Dependencies
NuGet Packages
| Package |
|---|
| Azure.Core |
| Azure.Storage.Blobs |
| Azure.Storage.Queues |
| Azure.Data.Tables |
| System.Linq.Async |
| CasCap.Common.Logging |
| CasCap.Common.Extensions |
| CasCap.Common.Serialization.Json |
Project References
None.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Azure.Core (>= 1.54.0)
- Azure.Data.Tables (>= 12.11.0)
- Azure.Storage.Blobs (>= 12.27.0)
- Azure.Storage.Queues (>= 12.25.0)
- CasCap.Common.Extensions (>= 4.10.4)
- CasCap.Common.Logging (>= 4.10.4)
- CasCap.Common.Serialization.Json (>= 4.10.4)
-
net8.0
- Azure.Core (>= 1.54.0)
- Azure.Data.Tables (>= 12.11.0)
- Azure.Storage.Blobs (>= 12.27.0)
- Azure.Storage.Queues (>= 12.25.0)
- CasCap.Common.Extensions (>= 4.10.4)
- CasCap.Common.Logging (>= 4.10.4)
- CasCap.Common.Serialization.Json (>= 4.10.4)
- System.Linq.Async (>= 7.0.1)
-
net9.0
- Azure.Core (>= 1.54.0)
- Azure.Data.Tables (>= 12.11.0)
- Azure.Storage.Blobs (>= 12.27.0)
- Azure.Storage.Queues (>= 12.25.0)
- CasCap.Common.Extensions (>= 4.10.4)
- CasCap.Common.Logging (>= 4.10.4)
- CasCap.Common.Serialization.Json (>= 4.10.4)
- System.Linq.Async (>= 7.0.1)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on CasCap.Api.Azure.Storage:
| Package | Downloads |
|---|---|
|
CasCap.Api.Knx.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Knx building automation integration library. |
|
|
CasCap.Api.Fronius.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Fronius solar inverter integration library. |
|
|
CasCap.Api.Buderus.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Buderus heating integration library. |
|
|
CasCap.Api.DoorBird.Sinks
Pluggable event sink implementations (Redis, Azure Tables, Azure Blob Storage) for the CasCap.Api.DoorBird door station integration library. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.10 | 0 | 5/21/2026 |
| 1.4.9 | 41 | 5/20/2026 |
| 1.4.8 | 328 | 5/13/2026 |
| 1.4.7 | 255 | 5/8/2026 |
| 1.4.6 | 96 | 5/4/2026 |
| 1.4.5 | 102 | 5/4/2026 |
| 1.4.4 | 289 | 4/23/2026 |
| 1.4.3 | 152 | 4/17/2026 |
| 1.4.2 | 107 | 4/16/2026 |
| 1.4.1 | 127 | 4/15/2026 |
| 1.4.0 | 226 | 4/1/2026 |
| 1.3.1 | 218 | 3/13/2026 |
| 1.3.0 | 109 | 3/11/2026 |
| 1.2.5 | 278 | 2/12/2026 |
| 1.2.4 | 116 | 2/2/2026 |
| 1.2.3 | 189 | 1/26/2026 |
| 1.2.2 | 456 | 12/11/2025 |
| 1.2.1 | 364 | 11/12/2025 |
| 1.1.16 | 241 | 10/19/2025 |
| 1.1.15 | 374 | 10/7/2025 |