Browse Source

Reuse azure configuration.

pull/4200/head
maliming 6 years ago
parent
commit
f1f3413274
  1. 18
      framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs
  2. 5
      framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProviderConfiguration.cs

18
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)) 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) if (configuration.CreateContainerIfNotExists)
{ {
await CreateContainerIfNotExists(args.Configuration.GetAzureConfiguration()); await CreateContainerIfNotExists(configuration);
} }
await GetBlobClient(configuration, blobName).UploadAsync(args.BlobStream, true); await GetBlobClient(configuration, blobName).UploadAsync(args.BlobStream, true);
@ -36,10 +36,11 @@ namespace Volo.Abp.BlobStoring.Azure
public override async Task<bool> DeleteAsync(BlobProviderDeleteArgs args) public override async Task<bool> DeleteAsync(BlobProviderDeleteArgs args)
{ {
var blobName = AzureBlobNameCalculator.Calculate(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; return false;
@ -48,19 +49,22 @@ namespace Volo.Abp.BlobStoring.Azure
public override async Task<bool> ExistsAsync(BlobProviderExistsArgs args) public override async Task<bool> ExistsAsync(BlobProviderExistsArgs args)
{ {
var blobName = AzureBlobNameCalculator.Calculate(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<Stream> GetOrNullAsync(BlobProviderGetArgs args) public override async Task<Stream> GetOrNullAsync(BlobProviderGetArgs args)
{ {
var blobName = AzureBlobNameCalculator.Calculate(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; return null;
} }
var blobClient = GetBlobClient(args.Configuration.GetAzureConfiguration(), blobName); var blobClient = GetBlobClient(configuration, blobName);
var download = await blobClient.DownloadAsync(); var download = await blobClient.DownloadAsync();
var memoryStream = new MemoryStream(); var memoryStream = new MemoryStream();
await download.Value.Content.CopyToAsync(memoryStream); await download.Value.Content.CopyToAsync(memoryStream);

5
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))); set => _containerConfiguration.SetConfiguration(AzureBlobProviderConfigurationNames.ConnectionString, Check.NotNullOrWhiteSpace(value, nameof(value)));
} }
/// <summary>
/// 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.
/// </summary>
public string ContainerName public string ContainerName
{ {
get => _containerConfiguration.GetConfiguration<string>(AzureBlobProviderConfigurationNames.ContainerName); get => _containerConfiguration.GetConfiguration<string>(AzureBlobProviderConfigurationNames.ContainerName);

Loading…
Cancel
Save