Невозможно ли загрузить файл в регион, отличный от региона ведра 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
параметр, как описано здесь .