Проблема с поставщиком клонов S3 и загрузкой файлов - PullRequest
0 голосов
/ 23 января 2020

Я работаю с клоном S3, который, согласно документации, имеет тот же API, что и AWS S3. Он называется Bluvalt: S3 REST API

Во-первых, я создал рабочее решение с помощью Amazon S3, и оно работало нормально. Однако, когда я переключился на клон S3, новый провайдер не обнаружен с новым ключом доступа и секретом. Вот ошибка, которую я получаю:

An error has occurred, The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId;

Однако, когда я выполняю загрузку файла с помощью AWS CLI, он работает нормально. Я понял, что должен добавить конечную точку в конфигурацию Spring.

Я использую spring-boot-starter-aws для подключения и работы.

Вот мои свойства:

cloud:
  aws:
    stack.auto: false
    region:
      static: ${S3_REGION}
    credentials.accessKey: ${S3_ACCESS_KEY}
    credentials.secretKey: ${S3_SECRET_KEY}

my-app:
  awsServices:
    bucketName: ${S3_BUCKET_NAME}

Можно ли заменить конечную точку AWS моим провайдером?

Ответы [ 2 ]

1 голос
/ 23 января 2020

Из документа из spring-cloud-aws. У нас нет возможности установить конечную точку s3 в файле свойств.

В качестве некоторых полезных тем:

Spring Cloud: тестирование клиента S3 с TestContainters

https://github.com/spring-cloud/spring-cloud-aws/issues/333

0 голосов
/ 30 января 2020

Я понял это. Ниже я публикую свое рабочее решение:

AmazonS3ClientBuilder
 .standard()
 .withClientConfiguration(configuration)
 .withEndpointConfiguration(new AwsClientBuilder
   .EndpointConfiguration(properties.getEndpointUrl(), properties.getRegion()))
 .withCredentials(credentialsProvider)
 .build();

По сути, вы должны иметь следующую конфигурацию для клиента: .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(properties.getEndpointUrl(), properties.getRegion()))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...