Checking for existence of S3 bucket - Java AWS SDK 2

0

Hi, what is the best way to check for the existence of an S3 bucket using the Java AWS SDK 2? I am not seeing relevant code examples for this. Thanks.

已提問 4 個月前檢視次數 462 次
3 個答案
0
已接受的答案

Hi, To check for the existence of an S3 bucket using the Java AWS SDK 2, you can use the HeadBucketRequest class within the com.amazonaws.services.s3.AmazonS3 package. Here's an example:

AmazonS3 s3Client = AmazonS3Client.create();
HeadBucketRequest headBucketRequest = new HeadBucketRequest("your-bucket-name");
s3Client.headBucket(headBucketRequest);

If the bucket exists, this code will return a Bucket object. If not, it will throw a NoSuchBucketException. More information can be found in the official AWS SDK for Java 2 Developer Guide: https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/examples-s3-buckets.html

profile picture
已回答 4 個月前
0

Hi,

For your need, check out: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-buckets.html

They provide a code example:

import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.Bucket;

import java.util.List;

if (s3.doesBucketExistV2(bucket_name)) {
    System.out.format("Bucket %s already exists.\n", bucket_name);
    b = getBucket(bucket_name);
} else {
    try {
        b = s3.createBucket(bucket_name);
    } catch (AmazonS3Exception e) {
        System.err.println(e.getErrorMessage());
    }
}
return b;

Best,

Didier

profile pictureAWS
專家
已回答 4 個月前
  • Thanks, but this is version 1, I am looking for example from version 2.

0

Depending on what you want to archive you can either use headBucket method of S3Client and check for NoSuchBucketException or if you just want to ensure it is created you may even try createBucket and catch exception:

 * @throws BucketAlreadyExistsException
 *         The requested bucket name is not available. The bucket namespace is shared by all users of the system.
 *         Select a different name and try again.
 * @throws BucketAlreadyOwnedByYouException
 *         The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS
 *         Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing
 *         bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket
 *         access control lists (ACLs).
Joerg
已回答 3 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南