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

Verify if the deleteObject has actually deleted the object in AWS S3 Java sdk

我有以下方法,它从 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
  }
}

此外,还有一个 api 可用于检查对象是否存在于 S3 中 doesObjectExist

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#doesObjectExist-java.lang.String-java.lang.String-