From 28da906e75f86f7dcf875ab11d76ecede775ee5f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 30 Dec 2020 17:09:56 +0800 Subject: [PATCH 1/5] Add NormalizeContainerName method --- .../BlobStoring/Aliyun/AliyunBlobProvider.cs | 11 ++++--- .../Abp/BlobStoring/Aws/AwsBlobProvider.cs | 14 +++++---- .../BlobStoring/Azure/AzureBlobProvider.cs | 12 ++++---- ...nioBlobContainerConfigurationExtensions.cs | 1 + .../BlobStoring/Minio/MinioBlobProvider.cs | 10 ++++--- .../Volo/Abp/BlobStoring/BlobProviderBase.cs | 29 +++++++++++++++++-- 6 files changed, 57 insertions(+), 20 deletions(-) diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs index d6c9303afd..199c343659 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs @@ -10,13 +10,16 @@ namespace Volo.Abp.BlobStoring.Aliyun { protected IOssClientFactory OssClientFactory { get; } protected IAliyunBlobNameCalculator AliyunBlobNameCalculator { get; } + protected IServiceProvider ServiceProvider { get; } public AliyunBlobProvider( IOssClientFactory ossClientFactory, - IAliyunBlobNameCalculator aliyunBlobNameCalculator) + IAliyunBlobNameCalculator aliyunBlobNameCalculator, + IServiceProvider serviceProvider) { OssClientFactory = ossClientFactory; AliyunBlobNameCalculator = aliyunBlobNameCalculator; + ServiceProvider = serviceProvider; } protected virtual IOss GetOssClient(BlobContainerConfiguration blobContainerConfiguration) @@ -88,15 +91,15 @@ namespace Volo.Abp.BlobStoring.Aliyun return memoryStream; } - private static string GetContainerName(BlobProviderArgs args) + protected virtual string GetContainerName(BlobProviderArgs args) { var configuration = args.Configuration.GetAliyunConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : configuration.ContainerName; + : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); } - private bool BlobExists(IOss ossClient,string containerName, string blobName) + protected virtual bool BlobExists(IOss ossClient,string containerName, string blobName) { // Make sure Blob Container exists. return ossClient.DoesBucketExist(containerName) && diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs index 191f9a0ac7..dbf2ce3848 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs @@ -12,12 +12,16 @@ namespace Volo.Abp.BlobStoring.Aws { protected IAwsBlobNameCalculator AwsBlobNameCalculator { get; } protected IAmazonS3ClientFactory AmazonS3ClientFactory { get; } + protected IServiceProvider ServiceProvider { get; } - public AwsBlobProvider(IAwsBlobNameCalculator awsBlobNameCalculator, - IAmazonS3ClientFactory amazonS3ClientFactory) + public AwsBlobProvider( + IAwsBlobNameCalculator awsBlobNameCalculator, + IAmazonS3ClientFactory amazonS3ClientFactory, + IServiceProvider serviceProvider) { AwsBlobNameCalculator = awsBlobNameCalculator; AmazonS3ClientFactory = amazonS3ClientFactory; + ServiceProvider = serviceProvider; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -111,7 +115,7 @@ namespace Volo.Abp.BlobStoring.Aws return await AmazonS3ClientFactory.GetAmazonS3Client(configuration); } - private async Task BlobExistsAsync(AmazonS3Client amazonS3Client, string containerName, string blobName) + protected virtual async Task BlobExistsAsync(AmazonS3Client amazonS3Client, string containerName, string blobName) { // Make sure Blob Container exists. if (!await AmazonS3Util.DoesS3BucketExistV2Async(amazonS3Client, containerName)) @@ -147,12 +151,12 @@ namespace Volo.Abp.BlobStoring.Aws } } - private static string GetContainerName(BlobProviderArgs args) + protected virtual string GetContainerName(BlobProviderArgs args) { var configuration = args.Configuration.GetAwsConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : configuration.ContainerName; + : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs index 3a9a062e76..58780c17b6 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs @@ -9,10 +9,12 @@ namespace Volo.Abp.BlobStoring.Azure public class AzureBlobProvider : BlobProviderBase, ITransientDependency { protected IAzureBlobNameCalculator AzureBlobNameCalculator { get; } + protected IServiceProvider ServiceProvider { get; } - public AzureBlobProvider(IAzureBlobNameCalculator azureBlobNameCalculator) + public AzureBlobProvider(IAzureBlobNameCalculator azureBlobNameCalculator, IServiceProvider serviceProvider) { AzureBlobNameCalculator = azureBlobNameCalculator; + ServiceProvider = serviceProvider; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -87,22 +89,22 @@ namespace Volo.Abp.BlobStoring.Azure await blobContainerClient.CreateIfNotExistsAsync(); } - private async Task BlobExistsAsync(BlobProviderArgs args, string blobName) + protected virtual async Task BlobExistsAsync(BlobProviderArgs args, string blobName) { // Make sure Blob Container exists. return await ContainerExistsAsync(GetBlobContainerClient(args)) && (await GetBlobClient(args, blobName).ExistsAsync()).Value; } - private static string GetContainerName(BlobProviderArgs args) + protected virtual string GetContainerName(BlobProviderArgs args) { var configuration = args.Configuration.GetAzureConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : configuration.ContainerName; + : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); } - private static async Task ContainerExistsAsync(BlobContainerClient blobContainerClient) + protected virtual async Task ContainerExistsAsync(BlobContainerClient blobContainerClient) { return (await blobContainerClient.ExistsAsync()).Value; } diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobContainerConfigurationExtensions.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobContainerConfigurationExtensions.cs index 3465914156..1449623ef4 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobContainerConfigurationExtensions.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobContainerConfigurationExtensions.cs @@ -15,6 +15,7 @@ namespace Volo.Abp.BlobStoring.Minio Action minioConfigureAction) { containerConfiguration.ProviderType = typeof(MinioBlobProvider); + containerConfiguration.NamingNormalizers.TryAdd(); minioConfigureAction(new MinioBlobProviderConfiguration(containerConfiguration)); diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs index fca23324dc..f8f1a1e880 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs @@ -10,10 +10,12 @@ namespace Volo.Abp.BlobStoring.Minio public class MinioBlobProvider : BlobProviderBase, ITransientDependency { protected IMinioBlobNameCalculator MinioBlobNameCalculator { get; } + protected IServiceProvider ServiceProvider { get; } - public MinioBlobProvider(IMinioBlobNameCalculator minioBlobNameCalculator) + public MinioBlobProvider(IMinioBlobNameCalculator minioBlobNameCalculator, IServiceProvider serviceProvider) { MinioBlobNameCalculator = minioBlobNameCalculator; + ServiceProvider = serviceProvider; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -108,7 +110,7 @@ namespace Volo.Abp.BlobStoring.Minio } } - private async Task BlobExistsAsync(MinioClient client, string containerName , string blobName) + protected virtual async Task BlobExistsAsync(MinioClient client, string containerName , string blobName) { // Make sure Blob Container exists. if (await client.BucketExistsAsync(containerName)) @@ -133,13 +135,13 @@ namespace Volo.Abp.BlobStoring.Minio return false; } - private static string GetContainerName(BlobProviderArgs args) + protected virtual string GetContainerName(BlobProviderArgs args) { var configuration = args.Configuration.GetMinioConfiguration(); return configuration.BucketName.IsNullOrWhiteSpace() ? args.ContainerName - : configuration.BucketName; + : NormalizeContainerName(args, ServiceProvider, configuration.BucketName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs index b1aafb6903..e0a798a7bb 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs @@ -1,5 +1,8 @@ -using System.IO; +using System; +using System.IO; +using System.Linq; using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; namespace Volo.Abp.BlobStoring { @@ -12,5 +15,27 @@ namespace Volo.Abp.BlobStoring public abstract Task ExistsAsync(BlobProviderExistsArgs args); public abstract Task GetOrNullAsync(BlobProviderGetArgs args); + + protected string NormalizeContainerName(BlobProviderArgs args, IServiceProvider serviceProvider, string containerName) + { + if (!args.Configuration.NamingNormalizers.Any()) + { + return containerName; + } + + using (var scope = serviceProvider.CreateScope()) + { + foreach (var normalizerType in args.Configuration.NamingNormalizers) + { + var normalizer = scope.ServiceProvider + .GetRequiredService(normalizerType) + .As(); + + containerName = normalizer.NormalizeContainerName(containerName); + } + + return containerName; + } + } } -} \ No newline at end of file +} From e457a7ede0ac34bdbd94d4fa96adf55b5c4b87b0 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 30 Dec 2020 17:37:34 +0800 Subject: [PATCH 2/5] Improved --- .../Abp/BlobStoring/Aliyun/AliyunBlobProviderConfiguration.cs | 2 +- .../Volo/Abp/BlobStoring/Aws/AwsBlobProviderConfiguration.cs | 2 +- .../Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs | 2 +- .../Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProviderConfiguration.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProviderConfiguration.cs index 276cbd8fc7..6b83d9f7a9 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProviderConfiguration.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProviderConfiguration.cs @@ -82,7 +82,7 @@ namespace Volo.Abp.BlobStoring.Aliyun public string ContainerName { get => _containerConfiguration.GetConfigurationOrDefault(AliyunBlobProviderConfigurationNames.ContainerName); - set => _containerConfiguration.SetConfiguration(AliyunBlobProviderConfigurationNames.ContainerName, Check.NotNullOrWhiteSpace(value, nameof(value))); + set => _containerConfiguration.SetConfiguration(AliyunBlobProviderConfigurationNames.ContainerName, value); } /// diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProviderConfiguration.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProviderConfiguration.cs index 2be373e428..86d127c0d9 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProviderConfiguration.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProviderConfiguration.cs @@ -82,7 +82,7 @@ namespace Volo.Abp.BlobStoring.Aws public string ContainerName { get => _containerConfiguration.GetConfigurationOrDefault(AwsBlobProviderConfigurationNames.ContainerName); - set => _containerConfiguration.SetConfiguration(AwsBlobProviderConfigurationNames.ContainerName, Check.NotNullOrWhiteSpace(value, nameof(value))); + set => _containerConfiguration.SetConfiguration(AwsBlobProviderConfigurationNames.ContainerName, value); } /// diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs index 969057d7d6..8b409e008b 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs @@ -17,7 +17,7 @@ public string ContainerName { get => _containerConfiguration.GetConfigurationOrDefault(AzureBlobProviderConfigurationNames.ContainerName); - set => _containerConfiguration.SetConfiguration(AzureBlobProviderConfigurationNames.ContainerName, Check.NotNullOrWhiteSpace(value, nameof(value))); + set => _containerConfiguration.SetConfiguration(AzureBlobProviderConfigurationNames.ContainerName, value); } /// diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs index 395aa76a72..fb510843e2 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs @@ -5,7 +5,7 @@ public string BucketName { get => _containerConfiguration.GetConfigurationOrDefault(MinioBlobProviderConfigurationNames.BucketName); - set => _containerConfiguration.SetConfiguration(MinioBlobProviderConfigurationNames.BucketName, Check.NotNullOrWhiteSpace(value, nameof(value))); + set => _containerConfiguration.SetConfiguration(MinioBlobProviderConfigurationNames.BucketName, value); } /// From 26fb70beee671bb273fcab961e6ff0bc1b14e5eb Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 30 Dec 2020 18:12:46 +0800 Subject: [PATCH 3/5] Make NormalizeContainerName mehtod virtual --- .../Volo/Abp/BlobStoring/BlobProviderBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs index e0a798a7bb..d96b6fa94b 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.BlobStoring public abstract Task GetOrNullAsync(BlobProviderGetArgs args); - protected string NormalizeContainerName(BlobProviderArgs args, IServiceProvider serviceProvider, string containerName) + protected virtual string NormalizeContainerName(BlobProviderArgs args, IServiceProvider serviceProvider, string containerName) { if (!args.Configuration.NamingNormalizers.Any()) { From 69a613d3f74b6d9ca4c0dfbfc066af55ef6ab0fe Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 14 Jan 2021 12:11:38 +0800 Subject: [PATCH 4/5] Add IBlobNormalizeNamingFactory --- .../BlobStoring/Aliyun/AliyunBlobProvider.cs | 8 +-- .../Abp/BlobStoring/Aws/AwsBlobProvider.cs | 8 +-- .../BlobStoring/Azure/AzureBlobProvider.cs | 10 +-- .../BlobStoring/Minio/MinioBlobProvider.cs | 10 +-- .../Volo/Abp/BlobStoring/BlobContainer.cs | 37 +++-------- .../Abp/BlobStoring/BlobContainerFactory.cs | 7 +- .../BlobStoring/BlobNormalizeNamingFactory.cs | 64 +++++++++++++++++++ .../Volo/Abp/BlobStoring/BlobProviderBase.cs | 27 +------- .../IBlobNormalizeNamingFactory.cs | 11 ++++ 9 files changed, 110 insertions(+), 72 deletions(-) create mode 100644 framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs create mode 100644 framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs index 199c343659..52d8674c67 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs @@ -10,16 +10,16 @@ namespace Volo.Abp.BlobStoring.Aliyun { protected IOssClientFactory OssClientFactory { get; } protected IAliyunBlobNameCalculator AliyunBlobNameCalculator { get; } - protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } public AliyunBlobProvider( IOssClientFactory ossClientFactory, IAliyunBlobNameCalculator aliyunBlobNameCalculator, - IServiceProvider serviceProvider) + IBlobNormalizeNamingFactory blobNormalizeNamingFactory) { OssClientFactory = ossClientFactory; AliyunBlobNameCalculator = aliyunBlobNameCalculator; - ServiceProvider = serviceProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; } protected virtual IOss GetOssClient(BlobContainerConfiguration blobContainerConfiguration) @@ -96,7 +96,7 @@ namespace Volo.Abp.BlobStoring.Aliyun var configuration = args.Configuration.GetAliyunConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); + : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); } protected virtual bool BlobExists(IOss ossClient,string containerName, string blobName) diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs index dbf2ce3848..991be2b37c 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs @@ -12,16 +12,16 @@ namespace Volo.Abp.BlobStoring.Aws { protected IAwsBlobNameCalculator AwsBlobNameCalculator { get; } protected IAmazonS3ClientFactory AmazonS3ClientFactory { get; } - protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } public AwsBlobProvider( IAwsBlobNameCalculator awsBlobNameCalculator, IAmazonS3ClientFactory amazonS3ClientFactory, - IServiceProvider serviceProvider) + IBlobNormalizeNamingFactory blobNormalizeNamingFactory) { AwsBlobNameCalculator = awsBlobNameCalculator; AmazonS3ClientFactory = amazonS3ClientFactory; - ServiceProvider = serviceProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -156,7 +156,7 @@ namespace Volo.Abp.BlobStoring.Aws var configuration = args.Configuration.GetAwsConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); + : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs index 58780c17b6..8e401b73c7 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs @@ -9,12 +9,14 @@ namespace Volo.Abp.BlobStoring.Azure public class AzureBlobProvider : BlobProviderBase, ITransientDependency { protected IAzureBlobNameCalculator AzureBlobNameCalculator { get; } - protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } - public AzureBlobProvider(IAzureBlobNameCalculator azureBlobNameCalculator, IServiceProvider serviceProvider) + public AzureBlobProvider( + IAzureBlobNameCalculator azureBlobNameCalculator, + IBlobNormalizeNamingFactory blobNormalizeNamingFactory) { AzureBlobNameCalculator = azureBlobNameCalculator; - ServiceProvider = serviceProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -101,7 +103,7 @@ namespace Volo.Abp.BlobStoring.Azure var configuration = args.Configuration.GetAzureConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : NormalizeContainerName(args, ServiceProvider, configuration.ContainerName); + : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); } protected virtual async Task ContainerExistsAsync(BlobContainerClient blobContainerClient) diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs index f8f1a1e880..a182478017 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs @@ -10,12 +10,14 @@ namespace Volo.Abp.BlobStoring.Minio public class MinioBlobProvider : BlobProviderBase, ITransientDependency { protected IMinioBlobNameCalculator MinioBlobNameCalculator { get; } - protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } - public MinioBlobProvider(IMinioBlobNameCalculator minioBlobNameCalculator, IServiceProvider serviceProvider) + public MinioBlobProvider( + IMinioBlobNameCalculator minioBlobNameCalculator, + IBlobNormalizeNamingFactory blobNormalizeNamingFactory) { MinioBlobNameCalculator = minioBlobNameCalculator; - ServiceProvider = serviceProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -141,7 +143,7 @@ namespace Volo.Abp.BlobStoring.Minio return configuration.BucketName.IsNullOrWhiteSpace() ? args.ContainerName - : NormalizeContainerName(args, ServiceProvider, configuration.BucketName); + : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.BucketName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs index cd2287e964..a95cdcadbe 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs @@ -1,9 +1,7 @@ using System; using System.IO; -using System.Linq; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; @@ -88,12 +86,15 @@ namespace Volo.Abp.BlobStoring protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + public BlobContainer( string containerName, BlobContainerConfiguration configuration, IBlobProvider provider, ICurrentTenant currentTenant, ICancellationTokenProvider cancellationTokenProvider, + IBlobNormalizeNamingFactory blobNormalizeNamingFactory, IServiceProvider serviceProvider) { ContainerName = containerName; @@ -101,6 +102,7 @@ namespace Volo.Abp.BlobStoring Provider = provider; CurrentTenant = currentTenant; CancellationTokenProvider = cancellationTokenProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; ServiceProvider = serviceProvider; } @@ -112,7 +114,7 @@ namespace Volo.Abp.BlobStoring { using (CurrentTenant.Change(GetTenantIdOrNull())) { - var (normalizedContainerName, normalizedBlobName) = NormalizeNaming(ContainerName, name); + var (normalizedContainerName, normalizedBlobName) = BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); await Provider.SaveAsync( new BlobProviderSaveArgs( @@ -134,7 +136,7 @@ namespace Volo.Abp.BlobStoring using (CurrentTenant.Change(GetTenantIdOrNull())) { var (normalizedContainerName, normalizedBlobName) = - NormalizeNaming(ContainerName, name); + BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); return await Provider.DeleteAsync( new BlobProviderDeleteArgs( @@ -154,7 +156,7 @@ namespace Volo.Abp.BlobStoring using (CurrentTenant.Change(GetTenantIdOrNull())) { var (normalizedContainerName, normalizedBlobName) = - NormalizeNaming(ContainerName, name); + BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); return await Provider.ExistsAsync( new BlobProviderExistsArgs( @@ -190,7 +192,7 @@ namespace Volo.Abp.BlobStoring using (CurrentTenant.Change(GetTenantIdOrNull())) { var (normalizedContainerName, normalizedBlobName) = - NormalizeNaming(ContainerName, name); + BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); return await Provider.GetOrNullAsync( new BlobProviderGetArgs( @@ -212,28 +214,5 @@ namespace Volo.Abp.BlobStoring return CurrentTenant.Id; } - - protected virtual (string, string) NormalizeNaming(string containerName, string blobName) - { - if (!Configuration.NamingNormalizers.Any()) - { - return (containerName, blobName); - } - - using (var scope = ServiceProvider.CreateScope()) - { - foreach (var normalizerType in Configuration.NamingNormalizers) - { - var normalizer = scope.ServiceProvider - .GetRequiredService(normalizerType) - .As(); - - containerName = normalizer.NormalizeContainerName(containerName); - blobName = normalizer.NormalizeBlobName(blobName); - } - - return (containerName, blobName); - } - } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs index 7a4da39ef9..8013762164 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs @@ -17,18 +17,22 @@ namespace Volo.Abp.BlobStoring protected IServiceProvider ServiceProvider { get; } + protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + public BlobContainerFactory( IBlobContainerConfigurationProvider configurationProvider, ICurrentTenant currentTenant, ICancellationTokenProvider cancellationTokenProvider, IBlobProviderSelector providerSelector, - IServiceProvider serviceProvider) + IServiceProvider serviceProvider, + IBlobNormalizeNamingFactory blobNormalizeNamingFactory) { ConfigurationProvider = configurationProvider; CurrentTenant = currentTenant; CancellationTokenProvider = cancellationTokenProvider; ProviderSelector = providerSelector; ServiceProvider = serviceProvider; + BlobNormalizeNamingFactory = blobNormalizeNamingFactory; } public virtual IBlobContainer Create(string name) @@ -41,6 +45,7 @@ namespace Volo.Abp.BlobStoring ProviderSelector.Get(name), CurrentTenant, CancellationTokenProvider, + BlobNormalizeNamingFactory, ServiceProvider ); } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs new file mode 100644 index 0000000000..cafba9bec2 --- /dev/null +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs @@ -0,0 +1,64 @@ +using System; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.BlobStoring +{ + public class BlobNormalizeNamingFactory : IBlobNormalizeNamingFactory, ITransientDependency + { + protected IServiceProvider ServiceProvider { get; } + + public BlobNormalizeNamingFactory(IServiceProvider serviceProvider) + { + ServiceProvider = serviceProvider; + } + + public (string containerName, string blobName) NormalizeNaming( + BlobContainerConfiguration configuration, + string containerName, + string blobName) + { + + if (!configuration.NamingNormalizers.Any()) + { + return (containerName, blobName); + } + + using (var scope = ServiceProvider.CreateScope()) + { + foreach (var normalizerType in configuration.NamingNormalizers) + { + var normalizer = scope.ServiceProvider + .GetRequiredService(normalizerType) + .As(); + + containerName = containerName.IsNullOrWhiteSpace()? containerName: normalizer.NormalizeContainerName(containerName); + blobName = blobName.IsNullOrWhiteSpace()? blobName: normalizer.NormalizeBlobName(blobName); + } + + return (containerName, blobName); + } + } + + public string NormalizeContainerName(BlobContainerConfiguration configuration, string containerName) + { + if (!configuration.NamingNormalizers.Any()) + { + return containerName; + } + + return NormalizeNaming(configuration, containerName, null).containerName; + } + + public string NormalizeBlobName(BlobContainerConfiguration configuration, string blobName) + { + if (!configuration.NamingNormalizers.Any()) + { + return blobName; + } + + return NormalizeNaming(configuration, null, blobName).blobName; + } + } +} diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs index d96b6fa94b..ea2bd1ed72 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs @@ -1,8 +1,5 @@ -using System; -using System.IO; -using System.Linq; +using System.IO; using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; namespace Volo.Abp.BlobStoring { @@ -15,27 +12,5 @@ namespace Volo.Abp.BlobStoring public abstract Task ExistsAsync(BlobProviderExistsArgs args); public abstract Task GetOrNullAsync(BlobProviderGetArgs args); - - protected virtual string NormalizeContainerName(BlobProviderArgs args, IServiceProvider serviceProvider, string containerName) - { - if (!args.Configuration.NamingNormalizers.Any()) - { - return containerName; - } - - using (var scope = serviceProvider.CreateScope()) - { - foreach (var normalizerType in args.Configuration.NamingNormalizers) - { - var normalizer = scope.ServiceProvider - .GetRequiredService(normalizerType) - .As(); - - containerName = normalizer.NormalizeContainerName(containerName); - } - - return containerName; - } - } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs new file mode 100644 index 0000000000..281196051d --- /dev/null +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs @@ -0,0 +1,11 @@ +namespace Volo.Abp.BlobStoring +{ + public interface IBlobNormalizeNamingFactory + { + (string containerName, string blobName) NormalizeNaming(BlobContainerConfiguration configuration, string containerName, string blobName); + + string NormalizeContainerName(BlobContainerConfiguration configuration, string containerName); + + string NormalizeBlobName(BlobContainerConfiguration configuration, string blobName); + } +} From d980ca961dfe4ea08c5986f123212ba8f986c003 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 14 Jan 2021 13:46:09 +0800 Subject: [PATCH 5/5] Rename IBlobNormalizeNamingFactory to IBlobNormalizeNamingService --- .../BlobStoring/Aliyun/AliyunBlobProvider.cs | 8 ++--- .../Abp/BlobStoring/Aws/AwsBlobProvider.cs | 8 ++--- .../BlobStoring/Azure/AzureBlobProvider.cs | 8 ++--- .../BlobStoring/Minio/MinioBlobProvider.cs | 8 ++--- .../Volo/Abp/BlobStoring/BlobContainer.cs | 36 +++++++++---------- .../Abp/BlobStoring/BlobContainerFactory.cs | 8 ++--- .../Abp/BlobStoring/BlobNormalizeNaming.cs | 15 ++++++++ ...ctory.cs => BlobNormalizeNamingService.cs} | 14 ++++---- ...tory.cs => IBlobNormalizeNamingService.cs} | 4 +-- 9 files changed, 62 insertions(+), 47 deletions(-) create mode 100644 framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs rename framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/{BlobNormalizeNamingFactory.cs => BlobNormalizeNamingService.cs} (81%) rename framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/{IBlobNormalizeNamingFactory.cs => IBlobNormalizeNamingService.cs} (55%) diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs index 52d8674c67..b06377245c 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs @@ -10,16 +10,16 @@ namespace Volo.Abp.BlobStoring.Aliyun { protected IOssClientFactory OssClientFactory { get; } protected IAliyunBlobNameCalculator AliyunBlobNameCalculator { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public AliyunBlobProvider( IOssClientFactory ossClientFactory, IAliyunBlobNameCalculator aliyunBlobNameCalculator, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory) + IBlobNormalizeNamingService blobNormalizeNamingService) { OssClientFactory = ossClientFactory; AliyunBlobNameCalculator = aliyunBlobNameCalculator; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; } protected virtual IOss GetOssClient(BlobContainerConfiguration blobContainerConfiguration) @@ -96,7 +96,7 @@ namespace Volo.Abp.BlobStoring.Aliyun var configuration = args.Configuration.GetAliyunConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); + : BlobNormalizeNamingService.NormalizeContainerName(args.Configuration, configuration.ContainerName); } protected virtual bool BlobExists(IOss ossClient,string containerName, string blobName) diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs index 991be2b37c..939e91f4ef 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs @@ -12,16 +12,16 @@ namespace Volo.Abp.BlobStoring.Aws { protected IAwsBlobNameCalculator AwsBlobNameCalculator { get; } protected IAmazonS3ClientFactory AmazonS3ClientFactory { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public AwsBlobProvider( IAwsBlobNameCalculator awsBlobNameCalculator, IAmazonS3ClientFactory amazonS3ClientFactory, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory) + IBlobNormalizeNamingService blobNormalizeNamingService) { AwsBlobNameCalculator = awsBlobNameCalculator; AmazonS3ClientFactory = amazonS3ClientFactory; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -156,7 +156,7 @@ namespace Volo.Abp.BlobStoring.Aws var configuration = args.Configuration.GetAwsConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); + : BlobNormalizeNamingService.NormalizeContainerName(args.Configuration, configuration.ContainerName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs index 8e401b73c7..b43e7eb030 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs @@ -9,14 +9,14 @@ namespace Volo.Abp.BlobStoring.Azure public class AzureBlobProvider : BlobProviderBase, ITransientDependency { protected IAzureBlobNameCalculator AzureBlobNameCalculator { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public AzureBlobProvider( IAzureBlobNameCalculator azureBlobNameCalculator, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory) + IBlobNormalizeNamingService blobNormalizeNamingService) { AzureBlobNameCalculator = azureBlobNameCalculator; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -103,7 +103,7 @@ namespace Volo.Abp.BlobStoring.Azure var configuration = args.Configuration.GetAzureConfiguration(); return configuration.ContainerName.IsNullOrWhiteSpace() ? args.ContainerName - : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.ContainerName); + : BlobNormalizeNamingService.NormalizeContainerName(args.Configuration, configuration.ContainerName); } protected virtual async Task ContainerExistsAsync(BlobContainerClient blobContainerClient) diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs index a182478017..057e4ea0ba 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs @@ -10,14 +10,14 @@ namespace Volo.Abp.BlobStoring.Minio public class MinioBlobProvider : BlobProviderBase, ITransientDependency { protected IMinioBlobNameCalculator MinioBlobNameCalculator { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public MinioBlobProvider( IMinioBlobNameCalculator minioBlobNameCalculator, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory) + IBlobNormalizeNamingService blobNormalizeNamingService) { MinioBlobNameCalculator = minioBlobNameCalculator; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; } public async override Task SaveAsync(BlobProviderSaveArgs args) @@ -143,7 +143,7 @@ namespace Volo.Abp.BlobStoring.Minio return configuration.BucketName.IsNullOrWhiteSpace() ? args.ContainerName - : BlobNormalizeNamingFactory.NormalizeContainerName(args.Configuration, configuration.BucketName); + : BlobNormalizeNamingService.NormalizeContainerName(args.Configuration, configuration.BucketName); } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs index a95cdcadbe..c4d45b840a 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs @@ -86,7 +86,7 @@ namespace Volo.Abp.BlobStoring protected IServiceProvider ServiceProvider { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public BlobContainer( string containerName, @@ -94,7 +94,7 @@ namespace Volo.Abp.BlobStoring IBlobProvider provider, ICurrentTenant currentTenant, ICancellationTokenProvider cancellationTokenProvider, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory, + IBlobNormalizeNamingService blobNormalizeNamingService, IServiceProvider serviceProvider) { ContainerName = containerName; @@ -102,7 +102,7 @@ namespace Volo.Abp.BlobStoring Provider = provider; CurrentTenant = currentTenant; CancellationTokenProvider = cancellationTokenProvider; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; ServiceProvider = serviceProvider; } @@ -114,13 +114,13 @@ namespace Volo.Abp.BlobStoring { using (CurrentTenant.Change(GetTenantIdOrNull())) { - var (normalizedContainerName, normalizedBlobName) = BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); + var blobNormalizeNaming = BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name); await Provider.SaveAsync( new BlobProviderSaveArgs( - normalizedContainerName, + blobNormalizeNaming.ContainerName, Configuration, - normalizedBlobName, + blobNormalizeNaming.BlobName, stream, overrideExisting, CancellationTokenProvider.FallbackToProvider(cancellationToken) @@ -135,14 +135,14 @@ namespace Volo.Abp.BlobStoring { using (CurrentTenant.Change(GetTenantIdOrNull())) { - var (normalizedContainerName, normalizedBlobName) = - BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); + var blobNormalizeNaming = + BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name); return await Provider.DeleteAsync( new BlobProviderDeleteArgs( - normalizedContainerName, + blobNormalizeNaming.ContainerName, Configuration, - normalizedBlobName, + blobNormalizeNaming.BlobName, CancellationTokenProvider.FallbackToProvider(cancellationToken) ) ); @@ -155,14 +155,14 @@ namespace Volo.Abp.BlobStoring { using (CurrentTenant.Change(GetTenantIdOrNull())) { - var (normalizedContainerName, normalizedBlobName) = - BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); + var blobNormalizeNaming = + BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name); return await Provider.ExistsAsync( new BlobProviderExistsArgs( - normalizedContainerName, + blobNormalizeNaming.ContainerName, Configuration, - normalizedBlobName, + blobNormalizeNaming.BlobName, CancellationTokenProvider.FallbackToProvider(cancellationToken) ) ); @@ -191,14 +191,14 @@ namespace Volo.Abp.BlobStoring { using (CurrentTenant.Change(GetTenantIdOrNull())) { - var (normalizedContainerName, normalizedBlobName) = - BlobNormalizeNamingFactory.NormalizeNaming(Configuration, ContainerName, name); + var blobNormalizeNaming = + BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name); return await Provider.GetOrNullAsync( new BlobProviderGetArgs( - normalizedContainerName, + blobNormalizeNaming.ContainerName, Configuration, - normalizedBlobName, + blobNormalizeNaming.BlobName, CancellationTokenProvider.FallbackToProvider(cancellationToken) ) ); diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs index 8013762164..0672554506 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerFactory.cs @@ -17,7 +17,7 @@ namespace Volo.Abp.BlobStoring protected IServiceProvider ServiceProvider { get; } - protected IBlobNormalizeNamingFactory BlobNormalizeNamingFactory { get; } + protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; } public BlobContainerFactory( IBlobContainerConfigurationProvider configurationProvider, @@ -25,14 +25,14 @@ namespace Volo.Abp.BlobStoring ICancellationTokenProvider cancellationTokenProvider, IBlobProviderSelector providerSelector, IServiceProvider serviceProvider, - IBlobNormalizeNamingFactory blobNormalizeNamingFactory) + IBlobNormalizeNamingService blobNormalizeNamingService) { ConfigurationProvider = configurationProvider; CurrentTenant = currentTenant; CancellationTokenProvider = cancellationTokenProvider; ProviderSelector = providerSelector; ServiceProvider = serviceProvider; - BlobNormalizeNamingFactory = blobNormalizeNamingFactory; + BlobNormalizeNamingService = blobNormalizeNamingService; } public virtual IBlobContainer Create(string name) @@ -45,7 +45,7 @@ namespace Volo.Abp.BlobStoring ProviderSelector.Get(name), CurrentTenant, CancellationTokenProvider, - BlobNormalizeNamingFactory, + BlobNormalizeNamingService, ServiceProvider ); } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs new file mode 100644 index 0000000000..e7ad89425b --- /dev/null +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs @@ -0,0 +1,15 @@ +namespace Volo.Abp.BlobStoring +{ + public class BlobNormalizeNaming + { + public string ContainerName { get; } + + public string BlobName { get; } + + public BlobNormalizeNaming(string containerName, string blobName) + { + ContainerName = containerName; + BlobName = blobName; + } + } +} diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingService.cs similarity index 81% rename from framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs rename to framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingService.cs index cafba9bec2..b2e057032a 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingFactory.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingService.cs @@ -5,16 +5,16 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.BlobStoring { - public class BlobNormalizeNamingFactory : IBlobNormalizeNamingFactory, ITransientDependency + public class BlobNormalizeNamingService : IBlobNormalizeNamingService, ITransientDependency { protected IServiceProvider ServiceProvider { get; } - public BlobNormalizeNamingFactory(IServiceProvider serviceProvider) + public BlobNormalizeNamingService(IServiceProvider serviceProvider) { ServiceProvider = serviceProvider; } - public (string containerName, string blobName) NormalizeNaming( + public BlobNormalizeNaming NormalizeNaming( BlobContainerConfiguration configuration, string containerName, string blobName) @@ -22,7 +22,7 @@ namespace Volo.Abp.BlobStoring if (!configuration.NamingNormalizers.Any()) { - return (containerName, blobName); + return new BlobNormalizeNaming(containerName, blobName); } using (var scope = ServiceProvider.CreateScope()) @@ -37,7 +37,7 @@ namespace Volo.Abp.BlobStoring blobName = blobName.IsNullOrWhiteSpace()? blobName: normalizer.NormalizeBlobName(blobName); } - return (containerName, blobName); + return new BlobNormalizeNaming(containerName, blobName); } } @@ -48,7 +48,7 @@ namespace Volo.Abp.BlobStoring return containerName; } - return NormalizeNaming(configuration, containerName, null).containerName; + return NormalizeNaming(configuration, containerName, null).ContainerName; } public string NormalizeBlobName(BlobContainerConfiguration configuration, string blobName) @@ -58,7 +58,7 @@ namespace Volo.Abp.BlobStoring return blobName; } - return NormalizeNaming(configuration, null, blobName).blobName; + return NormalizeNaming(configuration, null, blobName).BlobName; } } } diff --git a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingService.cs similarity index 55% rename from framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs rename to framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingService.cs index 281196051d..fecb75ef6a 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingFactory.cs +++ b/framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobNormalizeNamingService.cs @@ -1,8 +1,8 @@ namespace Volo.Abp.BlobStoring { - public interface IBlobNormalizeNamingFactory + public interface IBlobNormalizeNamingService { - (string containerName, string blobName) NormalizeNaming(BlobContainerConfiguration configuration, string containerName, string blobName); + BlobNormalizeNaming NormalizeNaming(BlobContainerConfiguration configuration, string containerName, string blobName); string NormalizeContainerName(BlobContainerConfiguration configuration, string containerName);