验证deleteObject是否实际删除了AWS S3 Java sdk中的对象

验证deleteObject是否实际删除了AWS S3 Java sdk中的对象,java,amazon-web-services,amazon-s3,aws-sdk,Java,Amazon Web Services,Amazon S3,Aws Sdk,我有以下方法,从AWS S3 Bucket中删除一个文件 如果文件不存在,则不会引发异常 没有成功代码或标志,无法查看文件是否已成功删除 是否有解决这种情况的办法 @Override public void deleteFile(String fileName) { try { this.client.deleteObject(builder -> builder .bucket(t

我有以下方法,从AWS S3 Bucket中删除一个文件

  • 如果文件不存在,则不会引发异常
  • 没有成功代码或标志,无法查看文件是否已成功删除
是否有解决这种情况的办法

@Override
public void deleteFile(String fileName) {
    try {
        this.client.deleteObject(builder ->
                builder
                        .bucket(this.bucketName).key(fileName)
                        .build());
    } catch (S3Exception ex) {
        ex.printStackTrace();
    }
}

如果请求成功,则删除对象。注意,由于最终的一致性,对象不能保证立即消失。您需要检查HTTP状态代码

AmazonS3 as3 = new AmazonS3();
Status myStatus = as3.DeleteObject(<fill in paramters here>);
if (myStatus.Code >= 200 && myStatus.Code < 300)
{
  // Success
}
else
{
  // Delete Failed

  // Handle specific Error Codes below
  if (myStatus.Description == "AllAccessDisabled")
  {
    // Do something
  }

  if (myStatus.Description == "NoSuchKey")
  {
    // Do something
  }
}
AmazonS3 as3=新的AmazonS3();
状态myStatus=as3.DeleteObject();
如果(myStatus.Code>=200&&myStatus.Code<300)
{
//成功
}
其他的
{
//删除失败
//处理下面的特定错误代码
if(myStatus.Description==“AllAccessDisabled”)
{
//做点什么
}
if(myStatus.Description==“NoSuchKey”)
{
//做点什么
}
}
此外,还有一个api可用于检查S3中是否存在该对象 是否存在这样的问题

另请注意:“如果试图删除不存在的对象,Amazon S3将返回一条成功消息,而不是错误消息。”