微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多个微服务尝试创建 amazonaws 存储桶

如何解决多个微服务尝试创建 amazonaws 存储桶

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

解决方法

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

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

您应该会看到 BucketAlreadyExistsException

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

通常,AWS API 通过拒绝第二个 API 调用并返回一个错误来处理这些冲突,该错误由 409 冲突 HTTP 状态代码表示,称为“BucketAlreadyExists”。您可以详细了解here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?