我在 Amazon S3 中创建了一个存储桶并将其命名为“todo”,并且该存储桶已成功创建且没有错误。绝对不可能没有其他人使用该存储桶名称,所以如果存储桶应该是全球唯一的,这是怎么发生的?
1 回答
1
我尝试创建一个名为todo的存储桶,并得到了预期的异常。我想您是第一个用该名称命名存储桶的人。
public static void main(String[] args) throws URISyntaxException {
final String USAGE = "\n" +
"Usage:\n" +
" <bucketName> \n\n" +
"Where:\n" +
" bucketName - the name of the bucket to create. The bucket name must be unique, or an error occurs.\n\n" ;
// if (args.length != 1) {
// System.out.println(USAGE);
// System.exit(1);
// }
String bucketName = "todo"; //args[0];
System.out.format("Creating a bucket named %s\n",
bucketName);
Region region = Region.US_EAST_1;
S3Client s3 = S3Client.builder()
.region(region)
.build();
createBucket (s3, bucketName);
s3.close();
}
// snippet-start:[s3.java2.create_bucket_waiters.main]
public static void createBucket( S3Client s3Client, String bucketName) {
try {
S3Waiter s3Waiter = s3Client.waiter();
CreateBucketRequest bucketRequest = CreateBucketRequest.builder()
.bucket(bucketName)
.build();
s3Client.createBucket(bucketRequest);
HeadBucketRequest bucketRequestWait = HeadBucketRequest.builder()
.bucket(bucketName)
.build();
// Wait until the bucket is created and print out the response.
WaiterResponse<HeadBucketResponse> waiterResponse = s3Waiter.waitUntilBucketExists(bucketRequestWait);
waiterResponse.matched().response().ifPresent(System.out::println);
System.out.println(bucketName +" is ready");
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
于 2021-10-26T14:11:29.140 回答