fix: change s3
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
using Amazon.Runtime;
|
||||
using Amazon.S3;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
using mws.backend.dotnet.application.Auth;
|
||||
using mws.backend.dotnet.application.Common;
|
||||
using mws.backend.dotnet.application.Documents;
|
||||
using mws.backend.dotnet.application.Permissions;
|
||||
using mws.backend.dotnet.infrastructure.Authentication;
|
||||
using mws.backend.dotnet.infrastructure.CloudFile;
|
||||
using mws.backend.dotnet.infrastructure.Persistence;
|
||||
using mws.backend.dotnet.infrastructure.Storage;
|
||||
|
||||
namespace mws.backend.dotnet.infrastructure;
|
||||
|
||||
@@ -39,16 +42,22 @@ public static class DependencyInjection
|
||||
|
||||
services.AddScoped<IPermissionService, PermissionService>();
|
||||
|
||||
services.Configure<CloudFileOptions>(configuration.GetSection("CloudFile"));
|
||||
services.AddHttpClient<ICloudFileHttpClient, CloudFileHttpClient>((sp, http) =>
|
||||
services.Configure<MinioOptions>(configuration.GetSection("Minio"));
|
||||
services.AddSingleton<IAmazonS3>(sp =>
|
||||
{
|
||||
var options = sp.GetRequiredService<Microsoft.Extensions.Options.IOptions<CloudFileOptions>>().Value;
|
||||
#pragma warning disable S1075 // hardcoded URL — this is a configurable base address from appsettings
|
||||
http.BaseAddress = new Uri(options.BaseUrl.TrimEnd('/') + "/");
|
||||
#pragma warning restore S1075
|
||||
http.Timeout = TimeSpan.FromSeconds(options.HttpTimeoutSeconds);
|
||||
var options = sp.GetRequiredService<IOptions<MinioOptions>>().Value;
|
||||
return new AmazonS3Client(
|
||||
new BasicAWSCredentials(options.AccessKey, options.SecretKey),
|
||||
new AmazonS3Config
|
||||
{
|
||||
ServiceURL = options.Endpoint,
|
||||
ForcePathStyle = true,
|
||||
UseHttp = options.Endpoint.StartsWith("http://", StringComparison.OrdinalIgnoreCase),
|
||||
RequestChecksumCalculation = RequestChecksumCalculation.WHEN_REQUIRED,
|
||||
ResponseChecksumValidation = ResponseChecksumValidation.WHEN_REQUIRED,
|
||||
});
|
||||
});
|
||||
services.AddScoped<IDocumentContentStore, CloudFileDocumentContentStore>();
|
||||
services.AddScoped<IDocumentContentStore, S3DocumentContentStore>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user