0

我正在尝试使用 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>
4

1 回答 1

0

根据这些 API文档,方法签名看起来不同:

default CreateBucketResponse createBucket(CreateBucketRequest createBucketRequest)
                                   throws BucketAlreadyExistsException,
                                          BucketAlreadyOwnedByYouException,
                                          AwsServiceException,
                                          SdkClientException,
                                          S3Exception

你应该看到BucketAlreadyExistsException.

您使用的是旧版 SDK (v1) 吗?

通常,AWS API 通过拒绝第二个 API 调用并返回由 409 冲突 HTTP 状态代码表示的错误并称为“BucketAlreadyExists”来处理这些冲突。您可以在此处了解更多信息。

于 2021-06-11T13:46:46.583 回答