⚡️ Microsoft.Extensions.DependencyInjection
and HealthChecks
extensions for Minio client ⚡️
$> dotnet add package Minio.AspNetCore
✅ Add MinioClient
services.AddMinio(options =>
{
options.Endpoint = "endpoint";
// ...
options.ConfigureClient(client =>
{
client.WithSSL();
});
});
// Url based configuration
services.AddMinio(new Uri("s3://accessKey:secretKey@localhost:9000/region"));
// Get or inject
var client = serviceProvider.GetRequiredService<MinioClient>();
// Create new from factory
var client = serviceProvider.GetRequiredService<IMinioClientFactory>().CreateClient();
✅ Multiple clients support using named options
services.AddMinio(options =>
{
options.Endpoint = "endpoint1";
// ...
options.ConfigureClient(client =>
{
client.WithSSL();
});
});
// Named extension overload
services.AddMinio("minio2", options =>
{
options.Endpoint = "endpoint2";
// ...
options.ConfigureClient(client =>
{
client.WithSSL().WithTimeout(...);
});
});
// Explicit named Configure
services.AddMinio()
.Configure<MinioOptions>("minio3", options =>
{
options.Endpoint = "endpoint3";
// ...
});
// Get or inject first minio client
var client = serviceProvider.GetRequiredService<MinioClient>();
// Create new minio2
var client = serviceProvider.GetRequiredService<IMinioClientFactory>().CreateClient("minio2");
// Create new minio3
var client = serviceProvider.GetRequiredService<IMinioClientFactory>().CreateClient("minio3");
// Minio.AspNetCore.HealthChecks package
services.AddHealthChecks()
.AddMinio(sp => sp.GetRequiredService<MinioClient>());
services.AddHealthChecks()
.AddMinio(sp => sp.GetRequiredService<MinioClient>())
.AddMinio(sp => /* Get named client from cache or create new */);
- From 4.x to 5.x
- Target frameworks support netstandard, .net6 and .net7
Minio
upgraded to 5.0.0
- From 3.x to 4.x
Minio
upgraded to 4.0.0options.OnClientConfiguration
replaced withoptions.ConfigureClient(...)
- From 5.x to 6.x
Minio
upgraded to 6.0.1- DI client type changed from
MinioClient
toIMinioClient