Ошибка чтения файла из S3: null (Служба: S3, код состояния: 502) с помощью GetObjectRequest

I am trying to read file from localstack s3 and getting below error

«message»: «Ошибка чтения файла из S3: ноль (Сервис: S3, код состояния: 502, идентификатор запроса: ноль)», «исключение»:»», «level_value»:40000

Даже я пробовал использовать один класс локально, все работает нормально

enter code here  public static void main(String[] args) {
AwsBasicCredentials credentials = AwsBasicCredentials.create("test", "test");
StaticCredentialsProvider staticCredentialsProvider =
    StaticCredentialsProvider.create(credentials);

S3Client s3Client =
    S3Client.builder()
        .region(Region.of("us-east-1"))
        .endpointOverride(URI.create("http://localhost:4566"))
        .credentialsProvider(staticCredentialsProvider)
        .forcePathStyle(true)
        .build();
GetObjectRequest getObjectRequest =
    GetObjectRequest.builder().bucket("test").key("file.txt").build();
ResponseBytes<GetObjectResponse> response = s3Client.getObjectAsBytes(getObjectRequest);
System.out.println(response);

}

Может ли кто-нибудь помочь, почему я получаю 502 в докере.

Я попробовал с локальным Java-файлом, кажется, работает. Получение 502 с помощью докера

🤔 А знаете ли вы, что...
Java поддерживает исключения для обработки ошибок.


1
56
1

Ответ:

Решено

Проблема была связана с URL-адресом s3, определенным в файле свойств. старшая aws.endpoint-s3=${AWS_ENDPOINT_S3:http://localhost:4566}

новое изменение cloud.aws.s3.endpoint=${AWS_ENDPOINT_S3:http://localhost:4566}

имя ключа должно быть определено только так