From a6e5cdec064cd172877a386640dc25c5050a03f0 Mon Sep 17 00:00:00 2001 From: colin Date: Wed, 2 Apr 2025 14:05:14 +0800 Subject: [PATCH] fix(oss): Repair minio bucket duplicate --- .../Identity/QrCode/QrCodeLoginProvider.cs | 3 +- .../README.md | 94 +++++++++---------- .../AbpOssManagementHttpApiClientModule.cs | 6 ++ .../OssManagement/Minio/MinioOssContainer.cs | 11 ++- .../LINGYUN/Platform/Routes/Route.cs | 28 ++++++ 5 files changed, 90 insertions(+), 52 deletions(-) diff --git a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.QrCode/LINGYUN/Abp/Identity/QrCode/QrCodeLoginProvider.cs b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.QrCode/LINGYUN/Abp/Identity/QrCode/QrCodeLoginProvider.cs index f88d2d86c..d8e54c287 100644 --- a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.QrCode/LINGYUN/Abp/Identity/QrCode/QrCodeLoginProvider.cs +++ b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.QrCode/LINGYUN/Abp/Identity/QrCode/QrCodeLoginProvider.cs @@ -153,4 +153,5 @@ public class QrCodeLoginProvider : IQrCodeLoginProvider, ITransientDependency return await UserManager.GenerateUserTokenAsync(user, QrCodeLoginProviderConsts.Name, QrCodeLoginProviderConsts.Purpose); - }} + } +} diff --git a/aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md b/aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md index 64d9a87fa..79c3c65e5 100644 --- a/aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md +++ b/aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md @@ -1,47 +1,47 @@ -# LINGYUN.Abp.BlobStoring.OssManagement - -abp框架对象存储提供者**IBlobProvider**的Oss管理模块实现 - -## 配置使用 - -模块按需引用, 依赖于OssManagement模块, 所以需要配置远端Oss管理模块的客户端代理 - -事先定义**appsettings.json**文件 - -```json -{ - "OssManagement": { - "Bucket": "你定义的BucketName" - }, - "RemoteServices": { - "AbpOssManagement": { - "BaseUrl": "http://127.0.0.1:30025", - "IdentityClient": "InternalServiceClient", - "UseCurrentAccessToken": false - } - }, - "IdentityClients": { - "InternalServiceClient": { - "Authority": "http://127.0.0.1:44385", - "RequireHttps": false, - "GrantType": "client_credentials", - "Scope": "lingyun-abp-application", - "ClientId": "InternalServiceClient", - "ClientSecret": "1q2w3E*" - } - } -} - -``` - -```csharp -[DependsOn(typeof(AbpBlobStoringOssManagementModule))] -public class YouProjectModule : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - var preActions = context.Services.GetPreConfigureActions(); +# LINGYUN.Abp.BlobStoring.OssManagement + +abp框架对象存储提供者**IBlobProvider**的Oss管理模块实现 + +## 配置使用 + +模块按需引用, 依赖于OssManagement模块, 所以需要配置远端Oss管理模块的客户端代理 + +事先定义**appsettings.json**文件 + +```json +{ + "OssManagement": { + "Bucket": "你定义的BucketName" + }, + "RemoteServices": { + "AbpOssManagement": { + "BaseUrl": "http://127.0.0.1:30025", + "IdentityClient": "InternalServiceClient", + "UseCurrentAccessToken": false + } + }, + "IdentityClients": { + "InternalServiceClient": { + "Authority": "http://127.0.0.1:44385", + "RequireHttps": false, + "GrantType": "client_credentials", + "Scope": "lingyun-abp-application", + "ClientId": "InternalServiceClient", + "ClientSecret": "1q2w3E*" + } + } +} + +``` + +```csharp +[DependsOn(typeof(AbpBlobStoringOssManagementModule))] +public class YouProjectModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + var preActions = context.Services.GetPreConfigureActions(); Configure(options => { preActions.Configure(options); @@ -64,6 +64,6 @@ public class YouProjectModule : AbpModule }); }); }); - } -} -``` + } +} +``` diff --git a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.HttpApi.Client/LINGYUN/Abp/OssManagement/AbpOssManagementHttpApiClientModule.cs b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.HttpApi.Client/LINGYUN/Abp/OssManagement/AbpOssManagementHttpApiClientModule.cs index fb83ae959..299923cbd 100644 --- a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.HttpApi.Client/LINGYUN/Abp/OssManagement/AbpOssManagementHttpApiClientModule.cs +++ b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.HttpApi.Client/LINGYUN/Abp/OssManagement/AbpOssManagementHttpApiClientModule.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Http.Client; using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; namespace LINGYUN.Abp.OssManagement; @@ -15,5 +16,10 @@ public class AbpOssManagementHttpApiClientModule : AbpModule typeof(AbpOssManagementApplicationContractsModule).Assembly, OssManagementRemoteServiceConsts.RemoteServiceName ); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); } } diff --git a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs index 36abbd161..5b81355c7 100644 --- a/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs +++ b/aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Minio/LINGYUN/Abp/OssManagement/Minio/MinioOssContainer.cs @@ -499,10 +499,13 @@ public class MinioOssContainer : OssContainerBase, IOssObjectExpireor { var configuration = ConfigurationProvider.Get(); var minioConfiguration = configuration.GetMinioConfiguration(); - - return bucket.IsNullOrWhiteSpace() - ? BlobNormalizeNamingService.NormalizeContainerName(configuration, minioConfiguration.BucketName!) - : BlobNormalizeNamingService.NormalizeContainerName(configuration, bucket); + var blobPath = minioConfiguration.BucketName; + if (string.Equals(bucket, blobPath, StringComparison.InvariantCultureIgnoreCase)) + { + return bucket; + } + + return bucket; } protected virtual string GetPrefixPath() diff --git a/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Routes/Route.cs b/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Routes/Route.cs index 9757afe4f..daa2afcb1 100644 --- a/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Routes/Route.cs +++ b/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Routes/Route.cs @@ -1,6 +1,8 @@ using JetBrains.Annotations; using System; +using System.Collections.Generic; using Volo.Abp; +using Volo.Abp.Data; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; @@ -58,6 +60,32 @@ public abstract class Route : FullAuditedAggregateRoot, IMultiTenant TenantId = tenantId; } + public void WithRequiredFeatures(string[] features) + { + var requiresFeatures = features?.JoinAsString(",") ?? ""; + + this.SetProperty("RequiredFeatures", requiresFeatures); + } + + public string[] GetRequiredFeatures() + { + var requiresFeaturesObj = this.GetProperty("RequiredFeatures"); + return requiresFeaturesObj?.ToString()?.Split(",") ?? Array.Empty(); + } + + public void WithRequiredPermissions(string[] permissions) + { + var requiresPermissions = permissions?.JoinAsString(",") ?? ""; + + this.SetProperty("RequiredPermissions", requiresPermissions); + } + + public string[] GetRequiredPermissions() + { + var requiresPermissionsObj = this.GetProperty("RequiredPermissions"); + return requiresPermissionsObj?.ToString()?.Split(",") ?? Array.Empty(); + } + public override int GetHashCode() { return Name.GetHashCode();