c# - 如何使用他们的 SDK 判断我的文件是否已从 Amazon S3 中成功删除?

标签 c# amazon-s3

我正在使用以下代码从我的 S3 中删除一个文件。但是我怎么知道从 S3 中实际删除文件是否成功呢?


这些是成功时返回的 header :


响应 header :x-amz-id-2,值:|已删除 key |
响应 header :x-amz-request-id,值:CA3F42D7F3B9215E
响应 header :日期,值:星期二,8 月 9 日 2


并没有成功:


响应 header :x-amz-id-2,值:fM3/|已删除 key |+p+F2Adu1Rr3b2k
Amazon S3 删除:响应 header :x-amz-request-id,值:0CFB9E7882F01BA3
响应 header :日期,值:2011 年 8 月 9 日星期二 21:23:12 GMT
响应 header :服务器,值:AmazonS3



header 之间的唯一区别(除了不同的请求 ID)是从 S3 返回的额外行有一个服务器,值:AmazonS3 值,但我不知道这是否是我确定是否有一个可靠的方法文件已成功从 S3 中删除



如何修改C#代码告诉我删除是否成功?

谢谢。



static void DeletingAnObject()
{
    try
    {
        DeleteObjectRequest request = new DeleteObjectRequest();
        request.WithBucketName(bucketName)
            .WithKey(keyName);
        using (DeleteObjectResponse response = client.DeleteObject(request))
        {
            WebHeaderCollection headers = response.Headers;
            foreach (string key in headers.Keys)
            {
                Console.WriteLine("Response Header: {0}, Value: {1}", key, headers.Get(key));
            }
        }
    }
    catch (AmazonS3Exception amazonS3Exception)
    {
        if (amazonS3Exception.ErrorCode != null &&
            (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") ||
            amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
        {
            Console.WriteLine("Please check the provided AWS Credentials.");
            Console.WriteLine("If you haven't signed up for Amazon S3, please visit http://aws.amazon.com/s3");
        }
        else
        {
            Console.WriteLine("An error occurred with the message '{0}' when deleting an object", amazonS3Exception.Message);
        }
    }
}

最佳答案

This article discusses similar issue .通常,如果您的请求成功,那么您的对象将被删除。但是请注意,由于最终一致性,对象不能保证立即消失。这就提出了一个问题,您将如何确定第二个请求失败?

关于c# - 如何使用他们的 SDK 判断我的文件是否已从 Amazon S3 中成功删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7003590/

相关文章:

swift - AWS S3 传输管理器 ${cognito-identity.amazonaws.com :sub} Policy Variable Access Denied

php - amazon s3,将文件上传到存储桶中的文件夹中

web-services - AWS S3 的动态使用

c# - 难道真的不能垂头丧气吗?它对我来说很好用

c# - ShowInTaskbar 在 WPF 中不能可靠地工作

c# - 使用 LINQ 进行过滤条件搜索

apache-spark - 使用多个 S3 帐户运行 EMR Spark

amazon-web-services - s3 SignedUrl x-amz-security-token

c# - 使用 System.Drawing.Imaging; System.Drawing中不存在Imaging

c# - 如何在消息框上设置进度条