Ich habe versucht, auf einen Amazon Simple Storage Service (Amazon S3)-Bucket in einer anderen AWS-Region zuzugreifen, und habe den Fehler „IllegalLocationConstraintException“ erhalten.
Kurzbeschreibung
Du kannst nicht auf einen Amazon S3-Bucket aus einer Region zugreifen, die sich von der Region des Buckets unterscheidet. Um auf den S3-Bucket zuzugreifen, musst du die API oder das AWS-SDK so aktualisieren, dass es sich in derselben Region wie der Bucket befindet. Weitere Informationen zum Fehler IllegalLocationConstraintException findest du in der Liste der Fehlercodes.
Lösung
Verwende die folgenden Schritte zur Fehlerbehebung, um die Region des Buckets abzurufen und die Amazon S3-Endpunkte auf die richtige Region zu aktualisieren.
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Die Amazon S3-Bucket-Region bestätigen
Um die S3-Bucket-Region zu bestätigen, kannst du die Amazon S3-Konsole oder die AWS-CLI verwenden.
Amazon S3-Konsole
Führe die folgenden Schritte aus:
- Öffne die Amazon S3-Konsole und navigiere dann zu deinem S3-Bucket.
- Wähle die Registerkarte Eigenschaften.
- Notiere dir in der Bucket-Übersicht die AWS-Region für den Bucket.
AWS CLI
Führe den folgenden Befehl get-bucket-location aus:
aws s3api get-bucket-location --bucket BUCKET_NAME
Hinweis: Ersetze BUCKET_NAME durch den Namen deines S3-Buckets.
Beispielausgabe:
{
"LocationConstraint": "us-west-2"
}
**Hinweis:**Wenn der Anforderungsparameter LocationConstraint null oder leer ist, befindet sich der Bucket in der Region us-east-1.
Die API- oder AWS-SDK-Regionskonfiguration aktualisieren
Führe die folgenden Schritte aus, um die API- oder AWS-SDK-Konfiguration auf die richtige Region zu aktualisieren.
AWS CLI
Führe den folgenden ls-Befehl aus und füge den Parameter --region hinzu:
aws s3 ls s3://BUCKET_NAME --region YOUR_REGION
Hinweis: Ersetze BUCKET_NAME durch den S3-Bucket-Namen und YOUR_REGION durch deine Region.
AWS SDK
Wenn du das AWS-SDK verwendest, aktualisiere die Konfiguration, um die richtige Region anzugeben.
Beispiel für eine Konfiguration des AWS-SDK für Python (Boto3):
import boto3
s3 = boto3.client('s3', region_name='YOUR-REGION')
response = s3.list_objects_v2(Bucket='BUCKET_NAME')
print(response)
Hinweis: Ersetze YOUR_REGION durch deine Region und BUCKET_NAME durch Bucket-Name.IllegalLocationConstraintException