如何使用Java SDK检查存储桶在我的Aws S3帐户中是否已经存在?
使用下面的代码
AmazonS3ClientBuilder.defaultClient().doesBucketExistV2(bucketName);
检查存储桶的全局存在性,并且即使我不是该存储桶的所有者或我无权访问该存储桶,如果具有该名称的存储桶在全局存在,则返回true。
我了解以这种方式制作此方法的意图,因此它使我们能够确定存储桶名称的可用性,但这不是我所需要的。当然,它将抛出异常,以后我将无法访问它,但它返回时说明存在此名称的存储桶。
我想检查具有给定名称的存储桶在我的S3帐户中是否存在,以便可以对其执行操作。
一种可能的解决方案是对list
所有存储桶进行搜索,并在返回的列表中搜索我的存储桶,我认为这并不是一个好的性能(如果我错了,请纠正我),因为可能有成千上万个存储桶并在其中搜索他们效率不高。
我如何确定我的S3帐户中是否存在存储桶而不检查全局存在性?
如评论headBucket
中提到的那样工作。
HeadBucketRequest headBucketRequest = HeadBucketRequest.builder()
.bucket(bucketName)
.build();
try {
s3Client.headBucket(headBucketRequest);
return true;
} catch (NoSuchBucketException e) {
return false;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句