LFlow/LFlow.Base/Utils/BucketManager.cs

136 lines
4.0 KiB
C#

using Minio.DataModel.Args;
using Minio.DataModel.Result;
using Minio.Exceptions;
using Minio;
namespace LFlow.Base.Utils
{
public class BucketManager
{
public static IMinioClient minioClient;
public BucketManager(IMinioClient IminioClient) {
minioClient= IminioClient;
}
/// <summary>
/// 1、判断bucket是否存在
/// </summary>
/// <param name="bucketName"></param>
/// <returns></returns>
public static async Task<string> IsExistStr(string bucketName)
{
try
{
BucketExistsArgs args = new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(args).ConfigureAwait(false);
Console.WriteLine("found。。。。。。", found);
if (found)
{
Console.WriteLine($"{bucketName}桶已存在");
return $"{bucketName}桶已存在";
}
else
{
Console.WriteLine($"{bucketName}桶不存在");
return $"{bucketName}桶不存在";
}
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
return "出错啦!!!";
}
}
/// <summary>
/// 2、创建一个bucket
/// </summary>
/// <param name="bucketName"></param>
/// <returns></returns>
public static async Task<string> Create(string? bucketName)
{
try
{
BucketExistsArgs args = new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(args).ConfigureAwait(false);
if (found)
{
return $"{bucketName}桶已存在";
}
else
{
MakeBucketArgs makeBucketArgs = new MakeBucketArgs().WithBucket(bucketName);
await minioClient.MakeBucketAsync(makeBucketArgs).ConfigureAwait(false);
return $"{bucketName}桶已成功创建";
}
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
return "出错啦!!!";
}
}
/// <summary>
/// 3、移除一个bucket
/// </summary>
/// <param name="bucketName"></param>
/// <returns></returns>
public static async Task<string> Delete(string? bucketName)
{
try
{
BucketExistsArgs args = new BucketExistsArgs().WithBucket(bucketName);
bool found = await minioClient.BucketExistsAsync(args).ConfigureAwait(false);
if (!found)
{
return $"{bucketName}桶不存在";
}
else
{
RemoveBucketArgs removeBucketArgs = new RemoveBucketArgs().WithBucket(bucketName);
await minioClient.RemoveBucketAsync(removeBucketArgs);
return $"{bucketName}桶删除成功";
}
}
catch (MinioException e)
{
Console.WriteLine("[Bucket] Exception: {0}", e);
return "出错啦!!!";
}
}
/// <summary>
/// 4、获取已有的bucket列表
/// </summary>
/// <returns></returns>
public static async Task<ListAllMyBucketsResult?> GetList()
{
try
{
return await minioClient.ListBucketsAsync();
}
catch (MinioException e)
{
Console.WriteLine("Error occurred: " + e);
return null;
}
}
}
}