Aspire.Azure.Storage.Blobs
8.0.0-preview.6.24214.1
Prefix Reserved
See the version list below for details.
dotnet add package Aspire.Azure.Storage.Blobs --version 8.0.0-preview.6.24214.1
NuGet\Install-Package Aspire.Azure.Storage.Blobs -Version 8.0.0-preview.6.24214.1
<PackageReference Include="Aspire.Azure.Storage.Blobs" Version="8.0.0-preview.6.24214.1" />
paket add Aspire.Azure.Storage.Blobs --version 8.0.0-preview.6.24214.1
#r "nuget: Aspire.Azure.Storage.Blobs, 8.0.0-preview.6.24214.1"
// Install Aspire.Azure.Storage.Blobs as a Cake Addin #addin nuget:?package=Aspire.Azure.Storage.Blobs&version=8.0.0-preview.6.24214.1&prerelease // Install Aspire.Azure.Storage.Blobs as a Cake Tool #tool nuget:?package=Aspire.Azure.Storage.Blobs&version=8.0.0-preview.6.24214.1&prerelease
Aspire.Azure.Storage.Blobs
Registers a BlobServiceClient service as a singleton in the DI container for connecting to Azure Storage Blobs. Enables corresponding health checks, logging and telemetry.
Getting started
Prerequisites
- Azure subscription - create one for free
- Azure Storage account - create a storage account
Install the package
Install the .NET Aspire Azure Storage Blobs library with NuGet:
dotnet add package Aspire.Azure.Storage.Blobs
Usage example
In the Program.cs file of your project, call the AddAzureBlobClient
extension method to register a BlobServiceClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddAzureBlobClient("blobs");
You can then retrieve the BlobServiceClient
instance using dependency injection. For example, to retrieve the client from a Web API controller:
private readonly BlobServiceClient _client;
public ProductsController(BlobServiceClient client)
{
_client = client;
}
See the Azure.Storage.Blobs documentation for examples on using the BlobServiceClient
.
Configuration
The .NET Aspire Azure Storage Blobs library provides multiple options to configure the Azure Storage Blob connection based on the requirements and conventions of your project. Note that either a ServiceUri
or a ConnectionString
is a required to be supplied.
Use a connection string
When using a connection string from the ConnectionStrings
configuration section, you can provide the name of the connection string when calling builder.AddAzureBlobClient()
:
builder.AddAzureBlobClient("blobsConnectionName");
And then the connection information will be retrieved from the ConnectionStrings
configuration section. Two connection formats are supported:
Service URI
The recommended approach is to use a ServiceUri, which works with the AzureStorageBlobsSettings.Credential
property to establish a connection. If no credential is configured, the DefaultAzureCredential is used.
{
"ConnectionStrings": {
"blobsConnectionName": "https://{account_name}.blob.core.windows.net/"
}
}
Connection string
Alternatively, an Azure Storage connection string can be used.
{
"ConnectionStrings": {
"blobsConnectionName": "AccountName=myaccount;AccountKey=myaccountkey"
}
}
Use configuration providers
The .NET Aspire Azure Storage Blobs library supports Microsoft.Extensions.Configuration. It loads the AzureStorageBlobsSettings
and BlobClientOptions
from configuration by using the Aspire:Azure:Storage:Blobs
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Azure": {
"Storage": {
"Blobs": {
"HealthChecks": false,
"Tracing": true,
"ClientOptions": {
"Diagnostics": {
"ApplicationId": "myapp"
}
}
}
}
}
}
}
Use inline delegates
You can also pass the Action<AzureStorageBlobsSettings> configureSettings
delegate to set up some or all the options inline, for example to disable health checks from code:
builder.AddAzureBlobClient("blobs", settings => settings.HealthChecks = false);
You can also setup the BlobClientOptions using the optional Action<IAzureClientBuilder<BlobServiceClient, BlobClientOptions>> configureClientBuilder
parameter of the AddAzureBlobClient
method. For example, to set the first part of "User-Agent" headers for all requests issues by this client:
builder.AddAzureBlobClient("blobs", configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(options => options.Diagnostics.ApplicationId = "myapp"));
AppHost extensions
In your AppHost project, install the Aspire Azure Storage Hosting library with NuGet:
dotnet add package Aspire.Hosting.Azure.Storage
Then, in the Program.cs file of AppHost
, add a Blob Storage connection and consume the connection using the following methods:
var blobs = builder.AddAzureStorage("storage").AddBlobs("blobs");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(blobs);
The AddBlobs
method will read connection information from the AppHost's configuration (for example, from "user secrets") under the ConnectionStrings:blobs
config key. The WithReference
method passes that connection information into a connection string named blobs
in the MyService
project. In the Program.cs file of MyService
, the connection can be consumed using:
builder.AddAzureBlobClient("blobs");
Additional documentation
- https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/storage/Azure.Storage.Blobs/README.md
- https://github.com/dotnet/aspire/tree/main/src/Components/README.md
Feedback & contributing
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. |
-
net8.0
- AspNetCore.HealthChecks.Azure.Storage.Blobs (>= 8.0.1)
- Azure.Identity (>= 1.10.4)
- Azure.Storage.Blobs (>= 12.19.1)
- Microsoft.Extensions.Azure (>= 1.7.2)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- OpenTelemetry.Extensions.Hosting (>= 1.8.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Aspire.Azure.Storage.Blobs:
Package | Downloads |
---|---|
Hexalith.Infrastructure.AspireService.Hosting
Hexalith is a set of libraries to build a micro-service architecture. |
|
Sekiban.Aspire.Infrastructure.Cosmos
Sekiban - Event Sourcing Framework Cosmos Aspire Connector |
|
AspireToolKit.Hosting.Testing.Extensions
Extensions for .NET Aspire integration testing to simplify and improve the user experience when testing. |
|
AspireToolKit
All AspireToolKit packages bundled together. |
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on Aspire.Azure.Storage.Blobs:
Repository | Stars |
---|---|
dotnet/aspire-samples
|
|
platformplatform/PlatformPlatform
Alpha state. A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc.
|
|
erwinkramer/bank-api
The Bank API is a design reference project suitable to bootstrap development for a compliant and modern API.
|
|
J-Tech-Japan/Sekiban
Sekiban - an Opinionated Event Sourcing and CQRS Framework using C#. It can store data into Azure Cosmos DB, AWS Dynamo DB or Postgres
|
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 7,209 | 11/12/2024 |
9.0.0-rc.1.24511.1 | 3,896 | 10/15/2024 |
8.2.2 | 9,738 | 10/24/2024 |
8.2.1 | 18,837 | 9/26/2024 |
8.2.0 | 32,295 | 8/29/2024 |
8.1.0 | 17,658 | 7/23/2024 |
8.0.2 | 12,006 | 6/28/2024 |
8.0.1 | 17,665 | 5/21/2024 |
8.0.0 | 1,711 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 2,589 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 6,949 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 4,758 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 3,306 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 6,010 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 2,785 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 1,425 | 11/14/2023 |