Невозможно ли загрузить файл в регион, отличный от региона ведра s3? (IllegalLocationConstraintException)

Я развернул свой проект django, используя AWS Elastic beanstalk и S3, и я попытался загрузить аватар профиля, но он показывает Server Error(500)

Мой журнал Sentry показывает, "Произошла ошибка (IllegalLocationConstraintException) при вызове операции PutObject: Ограничение местоположения eu-south-1 несовместимо для конечной точки региона, на которую был отправлен этот запрос."

Я думаю, что эта ошибка появилась потому что я разместил свой бакет на eu-south-1, но я пытаюсь получить к нему доступ и создать новый объект в Сеуле, Корея.

Кроме того, в документе AWS говорится, что IllegalLocationConstraintException указывает на то, что вы пытаетесь получить доступ к ведру из региона, отличного от того, где ведро существует. Чтобы избежать этой ошибки, используйте параметр --region. Например: aws s3 cp awsexample.txt s3://testbucket/ --region ap-east-1. (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)

но это решение может быть только для загрузки файла из AWS CLI...

Я пытался изменить свою политику ведра, добавив это, но это не работает.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::{BucketName}/*"
        }
    ]
}

Я не знаю, что мне делать и почему они не разрешают доступ из других регионов? Как разрешить доступ к созданию, обновлению и удалению объекта в моем ведре со всего мира? Это мое первое развертывание, пожалуйста, помогите мне🥲

Ваш экземпляр Django Elastic Beanstalk находится в другом регионе, чем ведро S3? Если да, то вам нужно установить AWS_S3_REGION_NAME параметр, как описано здесь .

Вернуться на верх