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 时删除存储桶失败?

C# S3 API 删除对象引发 409 冲突:您尝试删除的存储桶不为空

/facepalm

愚蠢的错误,调用代码正在为文件名传递 NULL。 只需传递正确的文件名即可解决问题。