Java и aws-java-sdk-s3 не могут получить доступ к SdkClientException

У меня есть исключение компиляции при компиляции кода для создания предварительно подписанного URL-адреса для загрузки на S3 со стороны клиента Angular5.

Код работает очень хорошо, когда я использую aws-java-sdk. Но поскольку библиотека большая, и мы просто хотим использовать S3 из aws-java-sdk Я меняю зависимость на использование aws-java-sdk-s3. и после этого изменения код генерирует ошибку компиляции.

Pom.xml

<!--        <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.310</version>
    </dependency>-->

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.11.311</version>
    </dependency>

Код Java:

    AWSCredentials credentials = new BasicAWSCredentials(
            ACCESS_KEY,
            SECRET_KEY
    );

    AmazonS3 s3client = AmazonS3ClientBuilder
            .standard()
            .withCredentials(new StaticCredentialsProvider(credentials))
            .withRegion(Regions.US_EAST_1)
            .build();

        java.util.Date expiration = new java.util.Date();
        long milliSeconds = expiration.getTime();
        // URL will be valid for 5 minutes only.
        milliSeconds += 1000 * 60 * 10; // Add 10 Mins.
        expiration.setTime(milliSeconds);

        GeneratePresignedUrlRequest generatePresignedUrlRequest =
                new GeneratePresignedUrlRequest(BUCKET, objectKey);
        generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
        generatePresignedUrlRequest.setExpiration(expiration);

        URL url = s3client.generatePresignedUrl(generatePresignedUrlRequest);
        return url.toString();

Compilation failure [ERROR] S3CredentialService.java:[49,51] error: cannot access SdkClientException

Дерево зависимостей.

[INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.11.311:compile
[INFO] |  +- com.amazonaws:aws-java-sdk-kms:jar:1.11.18:compile
[INFO] |  +- com.amazonaws:aws-java-sdk-core:jar:1.11.18:compile
[INFO] |  |  +- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] |  |  \- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.4:compile
[INFO] |  \- com.amazonaws:jmespath-java:jar:1.11.311:compile

Что такое строка 49?

kdgregory 08.04.2018 15:58

Также: если вы запустите mvn dependency:tree, указывает ли aws-java-sdk-s3 на aws-java-sdk-core как на транзитивную зависимость? Если нет, то что еще делать?

kdgregory 08.04.2018 15:59

Это строка 49: URL url = s3client.generatePresignedUrl (generatePresignedUrlRequest);

mostafa cs 09.04.2018 16:37

@kdgregory Я отредактировал вопрос, чтобы добавить дерево зависимостей.

mostafa cs 09.04.2018 16:48

Хорошо, и это довольно ясно показывает, что версия aws-java-sdk-core - это 1.11.18, а не 1.11.311. Итак, следующий вопрос, на который вы должны ответить, - это почему это происходит?. Скорее всего, где-то есть раздел dependencyManagement, или, возможно, вы импортируете «спецификацию материалов» (bom), которая определяет эту версию.

kdgregory 09.04.2018 20:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
1 175
0

Другие вопросы по теме