【发布时间】:2023-07-02 00:28:01
【问题描述】:
我正在尝试使用 AmazonS3Client 类 (com.amazonaws) 的 createBucket(String bucketName) 方法创建 S3 存储桶,但在此处提供的文档中 https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/ 它没有提到如果我的 2 个微服务尝试创建会出现什么情况同一个桶。如果一个人正在创建存储桶并且其他调用同时获得,它会抛出错误吗? 这种情况下的异常抛出也不清楚。
public Bucket createBucket(CreateBucketRequest createBucketRequest)
throws SdkClientException,
AmazonServiceException
我正在使用以下版本的 s3 sdk
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.184</version>
</dependency>
【问题讨论】:
-
为什么不在代码中尝试一下呢?创建存储桶两次,看看会发生什么。
-
@stdunbar 两次创建bucket并不完全一样,我说的是一个线程正在创建bucket,如果另一个线程也尝试从另一个微服务实例中创建的场景。然后会发生什么。如果它只是一个线程,那么我只需通过 dosBucketExist() 方法进行检查。
-
就像我们在单例模式中使用双锁检查时一样。
标签: java amazon-web-services amazon-s3 amazon-s3-bucket