验证deleteObject是否实际上已删除AWS S3 Java SDK中的对象

梅迪(Mehdi Benmesssaoud)

我有以下方法,该方法从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 didObjectExist中是否存在对象

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Java SDK 列出 AWS S3 中的所有对象

AWS Java SDK 2 S3复制对象

如何使用java sdk删除某些版本的s3对象标签?

AWS的Java SDK 2.0创建一个S3对象presigned网址

如何通过aws Java SDK公开S3对象?

使用适用于Java 2.x的AWS S3 SDK列出对象

使用AWS Java SDK为现有S3对象设置Expires标头

AWS S3 Java SDK-拒绝访问

如何在Scala或Java中模拟或存根AWS SDK S3存储桶调用?

AWS S3无法通过PHP SDK删除存储桶中的对象

ruby aws sdk s3删除文件夹中的对象

在S3中检索对象用户元数据-AWS SDK V3 PHP

从Java中的AWS S3映像获取内容类型

如何使用Java列出存储桶中的所有AWS S3对象

在Java中上传时如何在AWS S3对象中设置缓存控制?

S3中s3Client的复制和复制对象功能与Transfer Manger的区别(java sdk)

Java SDK中的Amazon S3 KMS上传

删除多个对象Amazon s3 PHP SDK

JavaScript aws-sdk S3 deleteObject成功但未删除任何内容

s3中“已删除”对象的定价

如果使用 aws-sdk 已经存在具有相同密钥的对象,则覆盖 S3 存储桶中的对象

AWS S3 软删除对象

适用于Java的AWS开发工具包版本2-删除S3“文件夹”或删除多个S3对象

检索S3中仅根对象(文件夹)的列表-AWS SDK V3 PHP

使用AWS Java Sdk的AWS Lambda和S3集成

AWS S3 Java SDK未将文件复制到文件夹

通过 AWS-Java SDK 为浏览器签署 S3 上传请求

如何在AWS S3 Java SDK中导入“ XferMgrProgress”

S3从Java SDK上载的速度比AWS CLI慢得多