使用C#删除Supabase Storage Bucket时触发BadRequestException异常
解决Supabase Storage删除Bucket时的BadRequestException异常
我尝试用以下C#代码删除Supabase Storage中的Bucket:
var supabase = new Supabase.Client("url", "key"); Console.Write("Enter bucket name: "); var bucketName = Console.ReadLine(); var bucket = await supabase.Storage.DeleteBucket(bucketName);
运行时抛出Supabase.Storage.BadRequestException异常,预期输入Bucket名称后能成功删除。
可能的原因及解决方法:
Bucket名称不匹配:Supabase的Bucket名称区分大小写,先确认输入的名称和控制台中显示的完全一致。可以先调用接口验证Bucket是否存在:
try { var existingBucket = await supabase.Storage.GetBucket(bucketName); var deletedBucket = await supabase.Storage.DeleteBucket(bucketName); } catch (Supabase.Storage.NotFoundException) { Console.WriteLine("目标Bucket不存在"); }Bucket未清空:Supabase不允许删除包含文件的Bucket,必须先删除Bucket内所有文件:
// 列出Bucket内所有文件 var files = await supabase.Storage.From(bucketName).List(); // 批量删除文件 foreach (var file in files) { await supabase.Storage.From(bucketName).Remove(new List<string> { file.Name }); } // 再删除Bucket var bucket = await supabase.Storage.DeleteBucket(bucketName);权限不足:检查使用的Supabase密钥是否拥有
storage_admin权限,或者该密钥对应的角色是否被授权删除目标Bucket。客户端版本兼容问题:更新NuGet包
Supabase到最新版本,旧版本可能存在API调用的兼容性问题。
内容的提问来源于stack exchange,提问作者lutfi sali
相关产品推荐
相关产品推荐

