[java] AWSエラーメッセージ:競合する条件付き操作が現在このリソースに対して進行中です


Answers

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

アカウントには10​​0バケットの制限があります( here参照)。 編集:今この制限は "ソフトリミット"であり、必要に応じて増やすことができます。

また、バケットの作成には時間がかかることに注意してください。

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

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

とにかく、今のところ失敗するシステムに取り組んでいるときは、エラーを処理し、そのようなエラーを受け取ったときにプロセスを遅くすることができます。 AWSドキュメントで詳細を参照してください。

Question

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

私は、java aws sdkを使用し、数千の小さなファイルのうちの10個を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)



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

私は同じ名前の新しいバケツを作ることができるまで一定の時間待つ必要があると信じています。




Related