Приложение (микросервис весенней загрузки) работает нормально при локальном запуске. Нет проблем с перечислением, чтением и записью объектов в корзине.
Вот как я создаю клиент S3:
Код: Выделить всё
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withRegion(Regions.EU_WEST_2)
.build();
Код: Выделить всё
s3client.listObjects().getObjectSummaries();
- AmazonS3FullAccess
- AWSElasticBeanstalkEnhancedHealth
- AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
- AWSElasticBeanstalkMulticontainerDocker
- AWSElasticBeanstalkWebTier
Однако при развертывании приложения доступ к корзине не удается:
com.amazonaws.services.s3.model.AmazonS3Exception: сегмент находится
в этом регионе: eu-central-1. Используйте этот регион, чтобы повторить запрос
(Сервис: Amazon S3; Код состояния: 301;
Это сообщение об ошибке неверно. Согласно обзор сегмента, сегмент расположен в регионе AWS
Европа (Лондон) eu-west-2
Я попробовал следовать рекомендации и использовать предложенный регион:
Код: Выделить всё
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withRegion(Regions.EU_CENTRAL_1)
.build();
Вызвано: com.amazonaws.services.s3.model .AmazonS3Exception: Доступ
Отказано (Сервис: Amazon S3; Код состояния: 403; Код ошибки:
Доступ запрещен;
The Elastic Домен приложения Beanstalk показывает, что оно работает в том же регионе, что и корзина S3, к которой оно пытается получить доступ:
.eu-west- 2.elasticbeanstalk.com
Для ясности: корзина была создана мной с использованием моей учетной записи через консоль AWS S3. Моя учетная запись является владельцем корзины. Приложение также было создано мной с использованием моей учетной записи. через консоль Elastic Beanstalk у меня есть другие приложения Java Elastic Beanstalk, которые при развертывании без проблем получают доступ к корзинам S3, что означает отсутствие причины, связанной со всей учетной записью.
Я также пробовал следующее, что также приводит к ответу об отказе в доступе.
Код: Выделить всё
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.enableForceGlobalBucketAccess()
.build();
Подробнее здесь: https://stackoverflow.com/questions/793 ... -correct-i
Мобильная версия