Ir para o conteúdo

Como resolvo o erro “IllegalLocationConstraintException” para buckets do Amazon S3 em uma região diferente?

2 minuto de leitura
0

Tentei acessar um bucket do Amazon Simple Storage Service (Amazon S3) em uma região diferente da AWS e recebi o erro “IllegalLocationConstraintException”.

Breve descrição

Não é possível acessar um bucket do Amazon S3 de uma região diferente da região do bucket. Para acessar o bucket do S3, você deve atualizar sua API ou AWS SDK para estar na mesma região do bucket. Para mais informações sobre o erro IllegalLocationConstraintException, consulte a Lista de códigos de erro.

Resolução

Use as etapas de solução de problemas a seguir para obter a região do bucket e atualizar seus endpoints do Amazon S3 para a região correta.

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Confirmar a região do bucket do Amazon S3

Para confirmar a região do bucket do S3, é possível usar o console do Amazon S3 ou a AWS CLI.

Console Amazon S3

Conclua as etapas a seguir:

  1. Abra o console do Amazon S3 e, em seguida, navegue até seu bucket do S3.
  2. Escolha o guia Propriedades.
  3. Em Visão geral do bucket, anote a região da AWS do seu bucket.

AWS CLI

Execute o seguinte comando get-bucket-location:

aws s3api get-bucket-location --bucket BUCKET_NAME

Observação: substitua BUCKET_NAME pelo nome do bucket do S3.

Exemplo de saída:

{      
"LocationConstraint": "us-west-2"  
}

Observação: se o parâmetro de solicitação LocationConstraint for nulo ou vazio, o bucket estará na região us-east-1.

Atualizar a configuração de região da API ou AWS SDK

Conclua as etapas a seguir para atualizar sua configuração da API ou AWS SDK para a região correta.

AWS CLI

Execute o seguinte comando ls e adicione o parâmetro --region:

aws s3 ls s3://BUCKET_NAME --region YOUR_REGION

Observação: substitua BUCKET_NAME pelo nome do bucket do S3 e YOUR_REGION pela sua região.

AWS SDK

Se você usa o AWS SDK, atualize sua configuração para especificar a região correta.

Exemplo de configuração do AWS SDK para Python (Boto3):

import boto3

   s3 = boto3.client('s3', region_name='YOUR-REGION')
   response = s3.list_objects_v2(Bucket='BUCKET_NAME')
   print(response)

Observação: substitua YOUR_REGION pela sua região e BUCKET_NAME pelo nome do seu bucket.IllegallocationConstraintException

AWS OFICIALAtualizada há 8 meses