C#S3 API DeleteObject抛出409冲突:您试图删除的存储桶不是空的
试图通过S3API(AWSSDK.S3 v3.1.0.0)删除对象时 我收到以下错误消息C#S3 API DeleteObject抛出409冲突:您试图删除的存储桶不是空的,c#,amazon-s3,C#,Amazon S3,试图通过S3API(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 fi
[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时删除bucket会失败吗?/facepalm
愚蠢的错误,调用代码正在为文件名传递NULL。只需传递正确的文件名就解决了问题。“我不想删除bucket,也不想删除bucket。”我不熟悉Amazon S3,但您发布的代码看起来确实像是在尝试删除某些内容……它是在尝试删除一个对象,而不是bucket。您的代码看起来很像Yep,可以做到这一点。与基于典型网站行为的预期不同,bucket在根
/
对象上没有文件的位置。根对象是bucket本身,因此您的请求路径为空(ish),无意中试图删除bucket。