验证deleteObject是否实际删除了AWS S3 Java sdk中的对象
我有以下方法,从AWS S3 Bucket中删除一个文件验证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
- 如果文件不存在,则不会引发异常
- 没有成功代码或标志,无法查看文件是否已成功删除
@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将返回一条成功消息,而不是错误消息。”