From f1f3413274eb0eea8c32e8b891182e1a638fb050 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:20:18 +0800 Subject: [PATCH] Reuse azure configuration. --- .../Abp/BlobStoring/Azure/AzureBlobProvider.cs | 18 +++++++++++------- .../Azure/AzureBlobProviderConfiguration.cs | 5 +++++ 2 files changed, 16 insertions(+), 7 deletions(-) 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 ec854b7be3..af5150c0a9 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 @@ -22,12 +22,12 @@ namespace Volo.Abp.BlobStoring.Azure if (!args.OverrideExisting && await BlobExistsAsync(configuration, blobName)) { - throw new BlobAlreadyExistsException($"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten."); + throw new BlobAlreadyExistsException($"Saving BLOB '{args.BlobName}' does already exists in the container '{configuration.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten."); } if (configuration.CreateContainerIfNotExists) { - await CreateContainerIfNotExists(args.Configuration.GetAzureConfiguration()); + await CreateContainerIfNotExists(configuration); } await GetBlobClient(configuration, blobName).UploadAsync(args.BlobStream, true); @@ -36,10 +36,11 @@ namespace Volo.Abp.BlobStoring.Azure public override async Task DeleteAsync(BlobProviderDeleteArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); + var configuration = args.Configuration.GetAzureConfiguration(); - if (await BlobExistsAsync(args.Configuration.GetAzureConfiguration(), blobName)) + if (await BlobExistsAsync(configuration, blobName)) { - return await GetBlobClient(args.Configuration.GetAzureConfiguration(), blobName).DeleteIfExistsAsync(); + return await GetBlobClient(configuration, blobName).DeleteIfExistsAsync(); } return false; @@ -48,19 +49,22 @@ namespace Volo.Abp.BlobStoring.Azure public override async Task ExistsAsync(BlobProviderExistsArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); - return await BlobExistsAsync(args.Configuration.GetAzureConfiguration(), blobName); + var configuration = args.Configuration.GetAzureConfiguration(); + + return await BlobExistsAsync(configuration, blobName); } public override async Task GetOrNullAsync(BlobProviderGetArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); + var configuration = args.Configuration.GetAzureConfiguration(); - if (!await BlobExistsAsync(args.Configuration.GetAzureConfiguration(), blobName)) + if (!await BlobExistsAsync(configuration, blobName)) { return null; } - var blobClient = GetBlobClient(args.Configuration.GetAzureConfiguration(), blobName); + var blobClient = GetBlobClient(configuration, blobName); var download = await blobClient.DownloadAsync(); var memoryStream = new MemoryStream(); await download.Value.Content.CopyToAsync(memoryStream); 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 a0906ed31f..8c232b7729 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 @@ -8,6 +8,11 @@ set => _containerConfiguration.SetConfiguration(AzureBlobProviderConfigurationNames.ConnectionString, Check.NotNullOrWhiteSpace(value, nameof(value))); } + /// + /// This name may only contain lowercase letters, numbers, and hyphens, and must begin with a letter or a number. + /// Each hyphen must be preceded and followed by a non-hyphen character. + /// The name must also be between 3 and 63 characters long. + /// public string ContainerName { get => _containerConfiguration.GetConfiguration(AzureBlobProviderConfigurationNames.ContainerName);