From 8d5dc4d6d5077f8ed50f23a2adae903f3218bb14 Mon Sep 17 00:00:00 2001 From: colin Date: Wed, 26 Mar 2025 12:01:09 +0800 Subject: [PATCH] feat(oss): The user decided to use Minio storage --- ...rviceApplicationsSingleModule.Configure.cs | 37 +++++++++++++------ .../MicroServiceApplicationsSingleModule.cs | 6 ++- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs b/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs index 2c72d40d4..7f987d367 100644 --- a/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs @@ -2,6 +2,7 @@ using LINGYUN.Abp.Identity.QrCode; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Extensions.DependencyInjection; using OpenIddict.Validation.AspNetCore; +using Volo.Abp.BlobStoring.Minio; using VoloAbpExceptionHandlingOptions = Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingOptions; namespace LY.MicroService.Applications.Single; @@ -316,23 +317,37 @@ public partial class MicroServiceApplicationsSingleModule }); } - private void ConfigureBlobStoring(IConfiguration configuration) + private void ConfigureOssManagement(IServiceCollection services, IConfiguration configuration) { - Configure(options => + var useMinio = configuration.GetValue("OssManagement:UseMinio"); + if (useMinio) { - options.Containers.ConfigureAll((containerName, containerConfiguration) => + Configure(options => { - containerConfiguration.UseFileSystem(fileSystem => + options.Containers.ConfigureAll((containerName, containerConfiguration) => { - fileSystem.BasePath = Path.Combine(Directory.GetCurrentDirectory(), "blobs"); + containerConfiguration.UseMinio(minio => + { + configuration.GetSection("Minio").Bind(minio); + }); }); - - //containerConfiguration.UseMinio(minio => - //{ - // configuration.GetSection("Minio").Bind(minio); - //}); }); - }); + services.AddMinioContainer(); + } + else + { + Configure(options => + { + options.Containers.ConfigureAll((containerName, containerConfiguration) => + { + containerConfiguration.UseFileSystem(fileSystem => + { + fileSystem.BasePath = Path.Combine(Directory.GetCurrentDirectory(), "blobs"); + }); + }); + }); + services.AddFileSystemContainer(); + } } private void ConfigureBackgroundTasks() diff --git a/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs b/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs index e66cd9dd0..10dde41f6 100644 --- a/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs +++ b/aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs @@ -1,5 +1,6 @@ using LINGYUN.Abp.Identity.WeChat.Work; using LINGYUN.Abp.Notifications.WeChat.Work; +using LINGYUN.Abp.OssManagement.Minio; namespace LY.MicroService.Applications.Single; @@ -120,7 +121,8 @@ namespace LY.MicroService.Applications.Single; // OpenIddict扩展模块 扫码登录 typeof(AbpOpenIddictQrCodeModule), - //typeof(AbpOssManagementMinioModule), // 取消注释以使用Minio + // 对象存储模块 Minio + typeof(AbpOssManagementMinioModule), // 对象存储模块 文件系统 typeof(AbpOssManagementFileSystemModule), // 对象存储模块 图片处理 @@ -412,7 +414,6 @@ public partial class MicroServiceApplicationsSingleModule : AbpModule ConfigureAuthServer(configuration); ConfigureSwagger(context.Services); ConfigureEndpoints(context.Services); - ConfigureBlobStoring(configuration); ConfigureMultiTenancy(configuration); ConfigureJsonSerializer(configuration); ConfigureTextTemplating(configuration); @@ -422,6 +423,7 @@ public partial class MicroServiceApplicationsSingleModule : AbpModule ConfigurePermissionManagement(configuration); ConfigureNotificationManagement(configuration); ConfigureCors(context.Services, configuration); + ConfigureOssManagement(context.Services, configuration); ConfigureDistributedLock(context.Services, configuration); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment());