Compare commits

...

2 Commits

Author SHA1 Message Date
洁 任 04ef99dcc0 Merge branch 'dev2.0' of http://123.132.248.154:10000/chenwei/FieldWorkClient into dev2.0 2025-07-07 15:33:30 +08:00
洁 任 414d6edb04 添加桶,删除桶修改 2025-07-07 15:33:27 +08:00
1 changed files with 66 additions and 34 deletions

View File

@ -30,6 +30,7 @@ using Minio.Exceptions;
using System.Collections.Concurrent;
using System.Security.AccessControl;
using Microsoft.VisualBasic;
using SqlSugar;
namespace HeBianGu.App.Disk
{
@ -527,9 +528,11 @@ namespace HeBianGu.App.Disk
.WithEndpoint(config["Minio:Endpoint"])
.WithCredentials(config["Minio:AccessKey"], config["Minio:SecretKey"])
.Build();
string bucket = folderName;
if (string.IsNullOrWhiteSpace(folderName))
{
return;
}
if (!folderName.EndsWith("/"))
folderName += "/";
@ -538,7 +541,8 @@ namespace HeBianGu.App.Disk
{
var bucketName = GetCurrentBucket();
var prefix = GetCurrentPrefix();
if (!string.IsNullOrEmpty(bucketName))
{
var beArgs = new BucketExistsArgs().WithBucket(bucketName);
bool found = await client.BucketExistsAsync(beArgs);
if (!found)
@ -546,7 +550,6 @@ namespace HeBianGu.App.Disk
var mbArgs = new MakeBucketArgs().WithBucket(bucketName);
await client.MakeBucketAsync(mbArgs);
}
using (var emptyStream = new MemoryStream(Encoding.UTF8.GetBytes(" ")))
{
await client.PutObjectAsync(
@ -558,6 +561,12 @@ namespace HeBianGu.App.Disk
.WithContentType("application/x-directory"));
}
}
else
{
var mbArgs = new MakeBucketArgs().WithBucket(bucket);
await client.MakeBucketAsync(mbArgs);
}
// 刷新当前目录
_explorerBehavior?.RefreshMinIOPath(CurrentMinIOPath);
}
@ -689,6 +698,28 @@ namespace HeBianGu.App.Disk
else if (item is MinIODirectoryModel dirModel)
{
var dirInfo = (MinIODirectoryInfo)dirModel.Model;
if (dirInfo.BucketName == dirInfo.FullName)
{
// 获取文件夹下所有对象
var listArgs = new ListObjectsArgs()
.WithBucket(bucketName);
List<string> list = new List<string>();
await foreach (var obj in client.ListObjectsEnumAsync(listArgs))
{
list.Add(obj.Key);
}
if(list.Count > 0)
{
SelectedItems.Clear();
throw new Exception($"仅能删除空桶!");
}
else
{
await client.RemoveBucketAsync(new RemoveBucketArgs().WithBucket(dirInfo.BucketName));
}
}
else
{
var folderPath = dirInfo.FullName.Substring(dirInfo.BucketName.Length + 1);
// 确保文件夹路径以斜杠结尾
@ -709,6 +740,7 @@ namespace HeBianGu.App.Disk
objectsToDelete.Add(folderPath);
}
}
}
// 批量删除
if (objectsToDelete.Any())