Browse Source

Code optimization

pull/4688/head
nuck.tang 6 years ago
parent
commit
18b69b71ab
  1. 8
      .gitignore
  2. 49
      framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
  3. 4
      framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs
  4. 3
      framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs
  5. 23
      framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs
  6. 1
      framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobNameCalculator_Tests.cs

8
.gitignore

@ -304,3 +304,11 @@ modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Logs/
/templates/app/angular/package-lock.json
/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package-lock.json
/framework/src/Volo.Abp.AspNetCore/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.Serilog/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.SignalR/Properties/launchSettings.json
/framework/src/Volo.Abp.AspNetCore.TestBase/Properties/launchSettings.json
/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Properties/launchSettings.json

49
framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs

@ -2,7 +2,6 @@
using Minio.Exceptions;
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
@ -66,30 +65,28 @@ namespace Volo.Abp.BlobStoring.Minio
var blobName = MinioBlobNameCalculator.Calculate(args);
var client = GetMinioClient(args);
var containerName = GetContainerName(args);
if (!await BlobExistsAsync(client, containerName, blobName))
{
return null;
}
var memoryStream = new MemoryStream();
await client.GetObjectAsync(containerName, blobName,
(stream) =>
{
if (stream != null)
{
stream.CopyTo(memoryStream);
}
else
{
memoryStream = null;
}
});
await client.GetObjectAsync(containerName, blobName, stream =>
{
if (stream != null)
{
stream.CopyTo(memoryStream);
}
else
{
memoryStream = null;
}
});
return memoryStream;
}
private MinioClient GetMinioClient(BlobProviderArgs args)
{
var configuration = args.Configuration.GetMinioConfiguration();
@ -101,18 +98,14 @@ namespace Volo.Abp.BlobStoring.Minio
}
return client;
}
protected virtual async Task CreateBucketIfNotExists(MinioClient client,string containerName)
{
if (!await client.BucketExistsAsync(containerName))
{
await client.MakeBucketAsync(containerName);
}
}
private async Task<bool> BlobExistsAsync(MinioClient client, string containerName , string blobName)
@ -127,22 +120,25 @@ namespace Volo.Abp.BlobStoring.Minio
// else it means that the object exists.
// Execution is successful.
await client.StatObjectAsync(containerName, blobName);
return true;
}
catch (MinioException ex)
{
if(ex is ObjectNotFoundException)
catch (Exception e)
{
if (e is ObjectNotFoundException)
{
return false;
}
throw ex;
else
{
throw e;
}
}
return true;
}
return false;
}
private static string GetContainerName(BlobProviderArgs args)
{
var configuration = args.Configuration.GetMinioConfiguration();
@ -152,6 +148,5 @@ namespace Volo.Abp.BlobStoring.Minio
? args.ContainerName.ToLower()
: configuration.BucketName.ToLower();
}
}
}

4
framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProviderConfiguration.cs

@ -42,9 +42,7 @@
{
get => _containerConfiguration.GetConfigurationOrDefault(MinioBlobProviderConfigurationNames.WithSSL, false);
set => _containerConfiguration.SetConfiguration(MinioBlobProviderConfigurationNames.WithSSL, value);
}
}
/// <summary>
///Default value: false.

3
framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs

@ -28,7 +28,6 @@ namespace Volo.Abp.BlobStoring.Minio
private string _accessKey;
private string _secretKey;
private readonly string _randomContainerName = "abp-minio-test-container-" + Guid.NewGuid().ToString("N");
public override void ConfigureServices(ServiceConfigurationContext context)
@ -70,7 +69,7 @@ namespace Volo.Abp.BlobStoring.Minio
IDisposable subscription = observables.Subscribe(
async item => await minioClient.RemoveObjectAsync(_randomContainerName, item.Key),
async () => await minioClient.RemoveBucketAsync(_randomContainerName)
);
);
}

23
framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs

@ -1,19 +1,16 @@
using Shouldly;
using System.Threading.Tasks;
using Xunit;
using Xunit;
namespace Volo.Abp.BlobStoring.Minio
{
/*
//Please set the correct connection string in secrets.json and continue the test.
////Please set the correct connection string in secrets.json and continue the test.
//public class MinioBlobContainer_Tests : BlobContainer_Tests<AbpBlobStoringMinioTestModule>
//{
// public MinioBlobContainer_Tests()
// {
// }
//}
public class MinioBlobContainer_Tests : BlobContainer_Tests<AbpBlobStoringMinioTestModule>
{
public MinioBlobContainer_Tests()
{
}
}
*/
}

1
framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobNameCalculator_Tests.cs

@ -10,7 +10,6 @@ namespace Volo.Abp.BlobStoring.Minio
private readonly IMinioBlobNameCalculator _calculator;
private readonly ICurrentTenant _currentTenant;
private const string MinioContainerName = "/";
private const string MinioSeparator = "/";
public MinioBlobNameCalculator_Tests()

Loading…
Cancel
Save