如何使用 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;
}
关于amazon-web-services - 如何检查存储桶是否已存在于 AWS S3 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940476/