我间歇性地收到此错误。
我有一个使用了Java SDK AWS和负载超过十万的小文件的10S到S3的程序。 我间歇性地看到这个错误。
找不到做在互联网上快速搜索之后的任何有用的答案。
注意调用程序是单线程的。 底层AWS Java SDK中似乎使用工作线程。
Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:578)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:503)
我得到同样的错误信息,当我做了以下内容:
创造了一个水桶 - 它去默认美国的区域(用于AWSCLI)
实现斗应当到欧盟地区,并删除了它(使用AWS控制台)
(几分钟后)试图创造的水桶,指定欧盟地区
在步骤3,AWS控制台显示我的错误消息,从你的问题的称号。
所以我想,在美国桶已被删除,但也有可能是一些同步过程,这些都占用时间。 我希望,在等待几个小时,我会找到桶名称可再创造 - 这一次是在正确的(EU)地区。
FIX: -编辑:大约一个小时后,我试图创建桶(欧盟地区)取得了成功。
对于谁偶然发现从谷歌的主题,作为第一个结果在搜索此错误信息所有其他人:
如果你删除了水桶,在新的地区重建, 不要等到“手动”,直到此背景同步将是完整的 ,而不是把一个小的bash脚本来运行,然后重试需要斗创作每5秒左右。
例:
#!/bin/bash
RESULT=2
until [ $RESULT -eq 0 ]; do
aws s3 mb s3://your.bucket.name --region us-west-2
RESULT=$?
sleep 5
done
echo "Bucket created!"
它会重试“创造桶”操作的你,每隔几秒钟(取决于“睡眠”),并尽快它是可能 - 会为您创建它,所以没有人可以错窃取你斗的名字:)
希望能帮助到你 :)
在你的例子请求是创建一个水桶。 如果你想创造太多的桶或更换水桶,这是不健康的。
请注意,您有100桶的限制账户(见这里 )。 编辑:现在这个限制是一个“软限制”,你可以增加它如果需要的话。
还要注意的是水桶的创作需要时间和:
......故不宜作斗创建或删除应用程序的高可用性的代码路径上的调用...
这是更好地一次创建你的水桶,然后,你可以把你在你现有的桶(或甚至一个单一的一个),喜欢尽可能多的对象。
总之,与结合现在再失败,任何一个系统工作时,你应该能够处理错误和接收到这样的错误时,放慢你的进程。 查看更多详情AWS文档 。
通常当一个桶被删除,并在相同的名称旧桶创建一个新的水桶会出现此错误。
我相信,我们需要等待一定的时间,直到我们可以创建一个同名的新桶。
文章来源: AWS Error Message: A conflicting conditional operation is currently in progress against this resource