amazon-web-services - 如何检查存储桶是否已存在于 AWS S3 中

标签 amazon-web-services amazon-s3 aws-java-sdk aws-java-sdk-2.x

如何使用 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/

相关文章:

java - 我想设置 s3 对象特定保留

amazon-web-services - lambda 中的 AWS SQS 操作在冷启动时花费的时间太长

amazon-web-services - 无服务器应用程序的访问 token 和 ID token 存储

hadoop - 根据上次修改将文件从 s3 下载到 Hive 中?

amazon-s3 - 托管在 Amazon S3 上的图像的自定义 URL

python - Boto3 没有将 zip 文件上传到 S3 python

java - 如何使用 aws-java-sdk 获取亚马逊网络服务中某个区域的所有可用图像的列表?

ios - AWS S3 存储桶问题

amazon-web-services - 使用 AWS API Gateway 进行 API 版本控制

http - 无法使用 HTTP header 在 AWS S3 中设置对象元数据