MinimalCleanArch.Storage
0.1.19
dotnet add package MinimalCleanArch.Storage --version 0.1.19
NuGet\Install-Package MinimalCleanArch.Storage -Version 0.1.19
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MinimalCleanArch.Storage" Version="0.1.19" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MinimalCleanArch.Storage" Version="0.1.19" />
<PackageReference Include="MinimalCleanArch.Storage" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MinimalCleanArch.Storage --version 0.1.19
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MinimalCleanArch.Storage, 0.1.19"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MinimalCleanArch.Storage@0.1.19
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MinimalCleanArch.Storage&version=0.1.19
#tool nuget:?package=MinimalCleanArch.Storage&version=0.1.19
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MinimalCleanArch.Storage
Shared blob storage abstractions for MinimalCleanArch.
Version
- Current stable: 0.1.19-preview (net9.0, net10.0).
Why Use It
- keep blob upload and download capabilities behind a reusable infrastructure abstraction instead of baking storage-provider details into application handlers
- generate provider-backed upload and download URLs without coupling business workflows to Azure SDK types
- swap or add blob-storage implementations later while keeping application logic on a small, neutral contract
When to Use It
- use it when the application stores files, media, exports, or other binary payloads outside the relational database
- keep it in infrastructure where storage clients, signed URL generation, and provider-specific headers belong
- skip it when the application has no blob/object storage requirement
Dependency Direction
- Depends on: no other MCA package
- Typically referenced by: infrastructure projects and composition roots
- Can be used with: MCA apps or independently of the rest of MCA
- Do not reference from: domain projects; storage-provider concerns should stay outside the domain model
Overview
IBlobStoragefor provider-neutral upload/download accessAzureBlobStoragefor Azure Blob Storage and Azurite-backed local development- DI extensions to register Azure Blob Storage from configuration or code
- signed upload/download URL support plus blob metadata lookup
Usage
dotnet add package MinimalCleanArch.Storage --version 0.1.19-preview
Recommended service registration:
builder.Services.AddAzureBlobStorage(builder.Configuration);
Explicit registration:
builder.Services.AddAzureBlobStorage(options =>
{
options.ConnectionString = builder.Configuration.GetConnectionString("BlobStorage")!;
options.ContainerName = "app-data";
});
Application usage:
public sealed class CreateUploadHandler(IBlobStorage blobStorage)
{
public Task<BlobUploadDescriptor> Handle(CancellationToken cancellationToken) =>
blobStorage.CreateUploadAsync(
"uploads/report.pdf",
"application/pdf",
1024,
cancellationToken);
}
Recommended guidance:
- keep blob keys, retention rules, and business validation in the application layer
- keep provider registration and connection settings in infrastructure or the host
- use Azurite for local development when targeting Azure Blob Storage in production
- add app-specific wrappers only when they genuinely add business meaning beyond generic blob operations
Local Azurite Notes
- when browser clients upload directly to Azurite with SAS URLs, configure blob-service CORS for the local frontend origin
- allow the HTTP methods your app uses for uploads and downloads, typically
PUT,GET,HEAD, andOPTIONS - allow the Azure upload headers required by the client, including
x-ms-blob-type - this belongs to the Azurite or storage-account setup, not to
AzureBlobStorageitself
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Azure.Storage.Blobs (>= 12.26.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.3)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.3)
-
net9.0
- Azure.Storage.Blobs (>= 12.26.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.5)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.5)
- Microsoft.Extensions.Options.DataAnnotations (>= 9.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.19 | 29 | 3/18/2026 |
| 0.1.19-preview | 33 | 3/18/2026 |
| 0.1.18 | 42 | 3/13/2026 |