diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
index cd20d43162..2b1b19e92f 100644
--- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
@@ -15,7 +15,7 @@
-
+
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 8c72e7f023..3b62cd4983 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
@@ -37,7 +37,11 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
await CreateBucketIfNotExists(client, containerName);
}
- await client.PutObjectAsync(containerName, blobName, args.BlobStream, args.BlobStream.Length);
+ await client.PutObjectAsync(new PutObjectArgs()
+ .WithBucket(containerName)
+ .WithObject(blobName)
+ .WithStreamData(args.BlobStream)
+ .WithObjectSize(args.BlobStream.Length));
}
public override async Task DeleteAsync(BlobProviderDeleteArgs args)
@@ -46,13 +50,14 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
var client = GetMinioClient(args);
var containerName = GetContainerName(args);
- if (await BlobExistsAsync(client, containerName, blobName))
+ if (!await BlobExistsAsync(client, containerName, blobName))
{
- await client.RemoveObjectAsync(containerName, blobName);
- return true;
+ return false;
}
- return false;
+ await client.RemoveObjectAsync(new RemoveObjectArgs().WithBucket(containerName).WithObject(blobName));
+ return true;
+
}
public override async Task ExistsAsync(BlobProviderExistsArgs args)
@@ -76,7 +81,7 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
}
var memoryStream = new MemoryStream();
- await client.GetObjectAsync(containerName, blobName, (stream) =>
+ await client.GetObjectAsync(new GetObjectArgs().WithBucket(containerName).WithObject(blobName).WithCallbackStream(stream =>
{
if (stream != null)
{
@@ -87,7 +92,7 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
{
memoryStream = null;
}
- });
+ }));
return memoryStream;
}
@@ -110,20 +115,20 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
protected virtual async Task CreateBucketIfNotExists(MinioClient client, string containerName)
{
- if (!await client.BucketExistsAsync(containerName))
+ if (!await client.BucketExistsAsync(new BucketExistsArgs().WithBucket(containerName)))
{
- await client.MakeBucketAsync(containerName);
+ await client.MakeBucketAsync(new MakeBucketArgs().WithBucket(containerName));
}
}
protected virtual async Task BlobExistsAsync(MinioClient client, string containerName, string blobName)
{
// Make sure Blob Container exists.
- if (await client.BucketExistsAsync(containerName))
+ if (await client.BucketExistsAsync(new BucketExistsArgs().WithBucket(containerName)))
{
try
{
- await client.StatObjectAsync(containerName, blobName);
+ await client.StatObjectAsync(new StatObjectArgs().WithBucket(containerName).WithObject(blobName));
}
catch (Exception e)
{
diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs
index de60ff6834..cb5111f2d0 100644
--- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs
+++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.Reactive.Linq;
+using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Minio;
using Volo.Abp.Modularity;
+using Volo.Abp.Threading;
namespace Volo.Abp.BlobStoring.Minio;
@@ -59,20 +61,26 @@ public class AbpBlobStoringMinioTestModule : AbpModule
});
}
- public override async void OnApplicationShutdown(ApplicationShutdownContext context)
+ public override void OnApplicationShutdown(ApplicationShutdownContext context)
{
- var minioClient = new MinioClient(_endPoint, _accessKey, _secretKey);
- if (await minioClient.BucketExistsAsync(_randomContainerName))
+ AsyncHelper.RunSync(() => OnApplicationShutdownAsync(context));
+ }
+
+ public async override Task OnApplicationShutdownAsync(ApplicationShutdownContext context)
+ {
+ var minioClient = new MinioClient().WithEndpoint(_endPoint).WithCredentials(_accessKey, _secretKey).Build();
+ if (await minioClient.BucketExistsAsync(new BucketExistsArgs().WithBucket(_randomContainerName)))
{
- var objects = await minioClient.ListObjectsAsync(_randomContainerName, null, true).ToList();
+ var objects = await minioClient.ListObjectsAsync(new ListObjectsArgs().WithBucket(_randomContainerName)
+ .WithPrefix(null).WithRecursive(true)).ToList();
foreach (var item in objects)
{
- await minioClient.RemoveObjectAsync(_randomContainerName, item.Key);
+ await minioClient.RemoveObjectAsync(new RemoveObjectArgs().WithBucket(_randomContainerName)
+ .WithObject(item.Key));
}
- await minioClient.RemoveBucketAsync(_randomContainerName);
+ await minioClient.RemoveBucketAsync(new RemoveBucketArgs().WithBucket(_randomContainerName));
}
-
}
}
diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs
index 320a68620e..74857b7fcb 100644
--- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs
+++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/MinioBlobContainer_Tests.cs
@@ -1,3 +1,15 @@
using Xunit;
namespace Volo.Abp.BlobStoring.Minio;
+
+/*
+//Please set the correct connection string in secrets.json and continue the test.
+public class MinioBlobContainer_Tests : BlobContainer_Tests
+{
+ public MinioBlobContainer_Tests()
+ {
+
+
+ }
+}
+*/
\ No newline at end of file