fix: Delete Bucket must be empty bucket . resolved rustfs/s3-rustfs#281

This commit is contained in:
cxymds
2025-03-31 16:57:35 +08:00
parent e4c5d17e70
commit 5e6cc6ecb8
2 changed files with 21 additions and 1 deletions
+13 -1
View File
@@ -41,6 +41,18 @@ export function useObject({ bucket, region }: { bucket: string, region?: string
return await $client.send(new DeleteObjectCommand(params))
}
const listObject = async (bucket:string,prefix :string| undefined = undefined,pageSize :number = 25) => {
const params = {
Bucket: bucket,
Prefix: prefix,
MaxKeys: pageSize ,
Delimiter: "/",
}
return await $client.send(new ListObjectsV2Command(params))
}
async function mapAllFiles(bucketName: string, prefix: string, callback: (fileKey: string) => void) {
let isTruncated = true;
let continuationToken: string | undefined = undefined;
@@ -101,5 +113,5 @@ export function useObject({ bucket, region }: { bucket: string, region?: string
return await $client.send(new DeleteObjectTaggingCommand(params))
}
return { headObject, putObject, deleteObject, getSignedUrl, mapAllFiles,getObjectTagging ,putObjectTagging,deleteObjectTagging}
return { headObject, putObject, deleteObject, getSignedUrl, mapAllFiles,listObject,getObjectTagging ,putObjectTagging,deleteObjectTagging}
}
+8
View File
@@ -154,6 +154,14 @@ const handleRowClick = (row: RowData,e: Event) => {
const message = useMessage();
const deleteItem = async (row: RowData) => {
const objectApi = useObject({ bucket: row.Name});
const files = await objectApi.listObject(row.Name);
if(files.KeyCount){
message.error("当前桶不为空,请先删除桶内容")
return
}
deleteBucket(row.Name).then(()=>{
message.success("删除成功")
refresh();