194

このエラーが断続的に発生します。

私はjavaawssdkを使用し、何万もの小さなファイルをs3にロードするプログラムを持っています。このエラーが断続的に表示されます。

インターネットで簡単に検索したところ、役立つ回答が見つかりませんでした。

呼び出し側プログラムはシングルスレッドであることに注意してください。基盤となるawsjavasdkはワーカースレッドを使用しているようです。

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)
4

9 に答える 9

488

次の手順を実行したときに、同じエラーメッセージが表示されました。

  1. バケットを作成しました-デフォルトで米国リージョンに移動しました(AWSCLIを使用)

  2. 実現したバケットはEUリージョンに移動し、削除します(AWSコンソールを使用)

  3. (数分後)EU地域を指定してバケットを作成しようとしました

ステップ3で、AWSコンソールに質問のタイトルからのエラーメッセージが表示されました。

つまり、米国のバケットは削除されたと思いますが、同期プロセスがいくつかあり、時間がかかっている可能性があります。そして、数時間待って、バケット名が再び作成できるようになることを願っています-今回は適切な(EU)地域で。

修正:-編集:約1時間後、(EU地域で)バケットを作成する試みが成功しました。

于 2013-05-14T21:20:27.560 に答える
44

グーグルからこのスレッドに出くわした他のすべての人のために、最初の結果としてこのエラーメッセージを検索します:

バケットを削除した場合、新しいリージョンで再作成するには、このバックグラウンド同期が完了するまで「手動」で待機しないでください。代わりに、小さな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!"

数秒ごとに(「sleep」に応じて)「バケットの作成」操作を再試行し、可能な限り早く作成します。これにより、誤ってバケット名を盗むことはできません:)

それが役に立てば幸い :)

于 2017-01-07T08:45:10.930 に答える
23

この例のリクエストは、バケットを作成することです。あまりにも多くのバケットを作成したり、バケットを置き換えたりしようとしている場合、それは健全ではありません。

アカウントには10​​0バケットの制限があることに注意してください(ここを参照)。編集:この制限は「ソフト制限」であり、必要に応じて増やすことができます。

また、バケットの作成には時間がかかり、次の点にも注意してください。

...アプリケーションの高可用性コードパスでバケットの作成または削除呼び出しを行うことは適切ではありません...

バケットを一度作成することをお勧めします。そうすれば、既存のバケット(または単一のバケット)に好きなだけオブジェクトを配置できます。

とにかく、時々失敗するはずのシステムで作業しているときは、エラーを処理し、そのようなエラーを受け取ったときにプロセスを遅くすることができるはずです。詳細については、AWSDocsをご覧ください。

于 2012-12-16T09:23:20.770 に答える
13

このエラーは通常、バケットが削除され、古いバケットと同じ名前で新しいバケットが作成された場合に発生します。

同じ名前で新しいバケットを作成できるようになるまで、一定の時間待つ必要があると思います。

于 2017-03-03T21:55:55.007 に答える
10

シンプルでわかりやすい:新しいバケット名を変更するか、1時間待ちます。

于 2018-03-18T07:04:11.413 に答える
3

最後に、AWSは独自のナレッジセンターに明確な回答を持っています。https://aws.amazon.com/premiumsupport/knowledge-center/s3-conflicting-conditional-operation/を参照してください。

バケットを削除しました(S3バケット名はグローバルに一意であり、別のAWSアカウントで同じバケットを作成する必要があるため)。同じ名前のバケットを作成するスクリプトは、同じエラーで失敗します。だから私は辛抱強く1時間待たなければなりません。

確認として:約1時間後、削除されたバケットと同じ名前のバケットを正常に作成できます。

于 2021-03-01T11:03:23.593 に答える
0

バケット名を変更するか、お待ちください。私は30分も待たなかった。名前を変更する必要はなく、設定されているため変更できませんでした。ホストしようとしている静的Webサイトの既存のドメイン名と一致する必要がありました。とにかく、30分以内に自動的に作成されました。

于 2019-12-07T15:27:40.547 に答える
0

アカウントにすでに100を超えるバケットがある場合にも、このメッセージが表示されます。100バケットのソフト制限があります。

于 2019-12-24T04:31:41.397 に答える
0

クラウドフォーメーションテンプレートの実行中にエラーが発生しました。

EC2がCFNテンプレートを実行していると想定したIAMの役割には、S3バケットを作成する権限がないことがわかりました。

IAMアクセスを提供するか、S3バケットを作成するために必要な権限を持つロールを実行するAWS Configureプログラムで引き受けることによって別のIAMロールを使用します。

于 2021-05-28T04:18:15.017 に答える