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

Posted

技术标签:

【中文标题】如何判断我的文件是不是已使用他们的 SDK 从 Amazon S3 中成功删除?【英文标题】:How can I tell if my file was successfully deleted from Amazon S3 using their SDK?如何判断我的文件是否已使用他们的 SDK 从 Amazon S3 中成功删除? 【发布时间】:2011-10-23 15:11:57 【问题描述】:

我正在使用以下代码从我的 S3 中删除一个文件。但是我如何判断从 S3 中实际删除文件是否成功? 如果成功,这些是返回的标头: 响应标头:x-amz-id-2,值:|已删除密钥| 响应标头:x-amz-request-id,值:CA3F42D7F3B9215E 响应标头:日期,值:8 月 2 日,星期二 并且不成功: 响应标头:x-amz-id-2,值:fM3/|已删除密钥|+p+F2Adu1Rr3b2k Amazon S3 删除:响应标头:x-amz-request-id,值:0CFB9E7882F01BA3 响应标头:日期,值:2011 年 8 月 9 日星期二 21:23:12 GMT 响应标头:服务器,值:AmazonS3 标头之间的唯一区别(不同的请求 ID 除外)是从 S3 返回的额外行有一个 Server, Value: AmazonS3 value 但我不知道这是否是我确定是否一个可靠的方法文件已成功从 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);
        
    

【问题讨论】:

这些调用不是异步的吗?是否可以再次调用以使用某个响应 ID 检查状态? 【参考方案1】:

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

【讨论】:

简而言之,如果client.DeleteObject抛出异常则失败,否则文件被删除。

以上是关于如何判断我的文件是不是已使用他们的 SDK 从 Amazon S3 中成功删除?的主要内容,如果未能解决你的问题,请参考以下文章

您如何判断是不是使异常检查或未检查?

如何在不使用 SDK 的情况下将文件从 Android 上传到 Amazon S3

可能的黑客攻击。如何判断我的数据库是不是已被入侵

如何判断我的电子邮件是不是已发送?

BuildFire - 如何使用 SDK 从管理面板触发推送通知?

如何判断 JavaScript 文件是不是已包含在 ASP.NET 页面中?