C# S3 API 删除对象引发 409 冲突:您尝试删除的存储桶不为空
本文关键字:删除 存储 对象 API S3 冲突 | 更新日期: 2023-09-27 18:31:57
尝试通过 S3 API (AWSSDK.S3 v3.1.0.0)我收到以下错误消息
[WebException: The remote server returned an error: (409) Conflict.]
[AmazonS3Exception: The bucket you tried to delete is not empty]
我没有尝试删除存储桶,也不想删除存储桶。
这是我类中的代码:
public static void Delete(string filename)
{
using (AmazonS3Client client = new AmazonS3Client(ACCESS_KEY_ID, SECRET_ACCESS_KEY, RegionEndpoint.USEast1))
{
var deleteRequest = new DeleteObjectRequest();
deleteRequest.BucketName = BUCKET;
deleteRequest.Key = Path.GetFileName(filename); //ensure only the filename is sent as key, not the path
client.DeleteObject(deleteRequest);
}
}
API 非常简单,调用约定很简单,知道为什么我在调用 DeleteObject 时删除存储桶失败?
/facepalm
愚蠢的错误,调用代码正在为文件名传递 NULL。 只需传递正确的文件名即可解决问题。