이 오류가 간헐적으로 발생합니다.
java aws sdk를 사용하고 수만 개의 작은 파일을 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 사용)
-
버킷은 EU 지역으로 이동하여 삭제해야합니다 (AWS 콘솔 사용).
-
(몇 분 후) EU 지역을 지정하여 버킷을 만들려고했습니다.
3 단계에서 AWS 콘솔에 질문 제목의 오류 메시지가 표시되었습니다.
따라서 미국의 버킷이 삭제되었지만 시간이 걸리는 동기화 프로세스가있을 수 있습니다. 그리고 몇 시간을 기다리면 버킷 이름을 다시 만들어 사용할 수있게 되었으면합니다. 이번에는 적절한 (EU) 리전입니다.
FIX :-편집 : 약 1 시간 후 (EU 지역) 버킷 생성 시도가 성공했습니다.
답변
구글 에서이 스레드를 우연히 발견 한 다른 모든 사람들에게 1 번째 로이 오류 메시지가 검색됩니다.
버킷을 삭제 한 경우 새 리전에서 다시 생성하려면 이 백그라운드 동기화가 완료 될 때까지 “수동으로”기다리지 말고 작은 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’에 따라) “버킷 생성”작업을 다시 시도하고 가능한 한 빨리 생성하여 사용자가 실수로 버킷 이름을 도용 할 수 없도록합니다.
그것이 도움이되기를 바랍니다 🙂
답변
예제의 요청은 버킷을 생성하는 것입니다. 버킷을 너무 많이 만들거나 버킷을 교체하려고하면 상태가 좋지 않습니다.
계정에 대한 버킷 수는 100 개로 제한됩니다 ( 여기 참조 ). 편집 : 이제이 한계는 “소프트 한계”이며 필요한 경우 증가시킬 수 있습니다.
또한 버킷을 생성하는 데 시간과 시간이 소요됩니다.
… 애플리케이션의 고 가용성 코드 경로에서 버킷을 생성하거나 삭제하는 호출은 적합하지 않습니다 …
버킷을 한 번 생성 한 다음 기존 버킷 (또는 단일 버킷)에 원하는 수의 객체를 넣을 수 있습니다.
어쨌든, 지금 실패한 시스템으로 작업 할 때, 그러한 오류를 수신 할 때 오류를 처리하고 프로세스 속도를 늦출 수 있어야합니다. 자세한 내용은 AWS Docs를 참조하십시오 .
답변
이 오류는 일반적으로 버킷이 삭제되고 이전 버킷과 동일한 이름으로 새 버킷이 생성 될 때 발생합니다.
같은 이름으로 새 버킷을 만들 수있을 때까지 일정 시간 기다려야한다고 생각합니다.
답변
간단하고 간단합니다. 새 버킷 이름을 변경하거나 1 시간 동안 기다립니다.
답변
계정에 100 개가 넘는 버킷이 이미있는 경우에도이 메시지가 나타납니다. 소프트 버킷은 100 개로 제한됩니다.
답변
버킷 이름을 변경하거나 기다리십시오. 나는 30 분도 채되지 않았다. 이름을 변경할 필요가 없었으며 이름을 변경할 때 변경할 수 없었습니다. 호스팅하려는 정적 웹 사이트의 기존 도메인 이름과 일치해야했습니다. 어쨌든 30 분 안에 자동으로 만들어졌습니다.