J'ai essayé d'accéder à un compartiment Amazon Simple Storage Service (Amazon S3) dans une autre région AWS et j'ai reçu l'erreur « IllegalLocationConstraintException ».
Brève description
Vous ne pouvez pas accéder à un compartiment Amazon S3 depuis une région différente de celle du compartiment. Pour accéder au compartiment S3, vous devez mettre à jour votre API ou votre SDK AWS afin qu'il se trouve dans la même région que le compartiment. Pour plus d'informations sur l'erreur IllegalLocationConstraintException, consultez la section Liste des codes d'erreur.
Résolution
Suivez les étapes de dépannage suivantes pour obtenir la région du compartiment et mettre à jour vos points de terminaison Amazon S3 vers la région appropriée.
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Confirmer la région du compartiment Amazon S3
Pour confirmer la région du compartiment S3, vous pouvez utiliser la console Amazon S3 ou l'interface de ligne de commande AWS.
Console Amazon S3
Procédez comme suit :
- Ouvrez la console Amazon S3, puis accédez à votre compartiment S3.
- Choisissez l’onglet Propriétés.
- Dans Présentation des compartiments, notez la région AWS de votre compartiment.
AWS CLI
Exécutez la commande get-bucket-location suivante :
aws s3api get-bucket-location --bucket BUCKET_NAME
Remarque : Remplacez bucket-name par le nom de votre compartiment S3.
Exemple de sortie :
{
"LocationConstraint": "us-west-2"
}
Remarque : Si le paramètre de requête LocationConstraint est nul ou vide, le compartiment se trouve dans la région us-east-1.
Mettre à jour la configuration de votre API ou de la région du SDK AWS
Procédez comme suit pour mettre à jour la configuration de votre API ou du SDK AWS vers la région appropriée.
AWS CLI
Exécutez la commande ls suivante et ajoutez le paramètre --region :
aws s3 ls s3://BUCKET_NAME --region YOUR_REGION
Remarque : Remplacez BUCKET_NAME par le nom de votre compartiment S3 et YOUR_REGION par votre région.
SDK AWS
Si vous utilisez le SDK AWS, mettez à jour votre configuration pour spécifier la région appropriée.
Exemple de configuration du SDK AWS pour Python (Boto3) :
import boto3
s3 = boto3.client('s3', region_name='YOUR-REGION')
response = s3.list_objects_v2(Bucket='BUCKET_NAME')
print(response)
Remarque : Remplacez YOUR_REGION par votre région et BUCKET_NAME par le nom de votre compartiment name.IllegalLocationConstraintException