Ошибка подключения к S3 Minio Object Store в Artifactory

Вопрос или проблема

Это другой вопрос. Но суть та же – нет подключения к S3 MINIO BINARYSTORE. Но в данный момент другая очень странная ошибка. Приблизительно DOCTYPE запрещен, когда функция… но файлов с DOCTYPE нигде нет.

Файл binarystore.xml:

<config version="2">
   <chain>
        <provider id="cache-fs" type="cache-fs">
            <provider id="s3-storage-v3" type="s3-storage-v3"/>
        </provider>
   </chain>
   <provider id="s3-storage-v3" type="s3-storage-v3">
       <endpoint>https://s3-site.com</endpoint>
       <bucketName>test</bucketName>
       <path></path>
       <region>site</region>
       <identity>username</identity>
       <credential>password</credential>
       <usePresigning>true</usePresigning>
       <signatureExpirySeconds>600</signatureExpirySeconds>
       <maxConnections>50</maxConnections>
       <connectionTimeout>10000</connectionTimeout>
   </provider>
   <provider type="cache-fs" id="cache-fs">
       <maxCacheSize>5000000000</maxCacheSize>
   </provider>
</config>

Ошибка, возникшая при запуске Artifactory, я также добавил DEBUG логи:

2024-10-22T13:28:33.982Z [jfrt ] [DEBUG] [408dbd5b6a3d51a ] [c.a.i.SdkSSLSocket:31         ] [art-init            ] - создано: test.s3-site.com/172.17.14.250:443
2024-10-22T13:28:34.001Z [jfrt ] [DEBUG] [408dbd5b6a3d51a ] [c.a.r.ClockSkewAdjuster:179   ] [art-init            ] - Сообщенная дата сервера (из заголовка 'Date'): Вт, 22 Окт 2024 13:28:33 GMT
2024-10-22T13:28:34.056Z [jfrt ] [DEBUG] [408dbd5b6a3d51a ] [.m.t.XmlResponsesSaxParser:160] [art-init            ] - Разбор XML ответа с обработчиком: класс com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$AccessControlListHandler
2024-10-22T13:28:34.063Z [jfrt ] [WARN ] [408dbd5b6a3d51a ] [ifactoryApplicationContext:288] [art-init            ] - Исключение, возникшее во время инициализации контекста - отмена попытки обновления: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'blobInfoServiceImpl', определенного в URL [jar:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/artifactory/WEB-INF/lib/artifactory-addons-common-7.59.13.jar!/org/artifactory/addon/common/blobinfo/BlobInfoServiceImpl.class]: неудовлетворённая зависимость, выраженная через параметр конструктора 1; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'replicatorServiceImpl', определенного в URL [jar:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/artifactory/WEB-INF/lib/artifactory-addons-common-7.59.13.jar!/org/artifactory/addon/common/replicator/ReplicatorServiceImpl.class]: неудовлетворённая зависимость, выраженная через параметр конструктора 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'artifactDistributionStatusWriterServiceImpl': неудовлетворённая зависимость, выраженная через поле 'taskService'; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'taskServiceImpl': неудовлетворённая зависимость, выраженная через поле 'addonsManager'; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'addonsManagerImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setEntitlementService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'JFConnectServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setAccessService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'accessServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setCentralConfigService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'centralConfig': неудовлетворённая зависимость, выраженная через поле 'authService'; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'securityServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setBuildService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'buildServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setUploadService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'uploadServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setTrafficService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'trafficServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setRepositoryService' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'repositoryServiceImpl': неудовлетворённая зависимость, выраженная через поле 'storageService'; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'storageServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setBinaryStore' 0; вложенное исключение — org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании бина с именем 'artifactoryBinaryServiceImpl': неудовлетворённая зависимость, выраженная через параметр метода 'setBinaryService' 0; вложенное исключение — org.springframework.beans.factory.BeanCreationException: Ошибка при создании бина с именем 'binaryInternalService': вызов метода init завершился неудачей; вложенное исключение — com.amazonaws.SdkClientException: Не удалось разобрать XML-документ с обработчиком класса com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$AccessControlListHandler
2024-10-22T13:28:34.076Z [jfrt ] [ERROR] [408dbd5b6a3d51a ] [ctoryContextConfigListener:126] [art-init            ] - Приложение не смогло быть инициализировано: DOCTYPE запрещен, когда функция "http://apache.org/xml/features/disallow-doctype-decl" установлена в true.

Ответ или решение

Ошибка подключения S3 Minio Object Store к Artifactory: Решения и Рекомендации

Ошибка подключения к S3 Minio Object Store в Artifactory может вызывать множество трудностей, и в данном случае, судя по предоставленному лог-файлу и конфигурации binarystore.xml, проблема может быть связана с парсингом XML-ответов S3 API, а также с настройками безопасности и структуры данных.

Анализ ошибки

В логах вы видите несколько ключевых сообщений:

  1. Ошибка парсинга XML:

    ...Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$AccessControlListHandler...

    Это может означать, что ответ от S3 содержит недопустимые данные, что может происходить из-за неверной настройки Mino или проблем с сетевым соединением.

  2. Ошибка с DOCTYPE:

    Application could not be initialized: DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.

    Это говорит о том, что парсер XML не позволяет использовать декларации типа документа. Как правило, это связано с настройками безопасности конфигурации XML.

Рекомендации по устранению

  1. Проверка конфигурации binarystore.xml:
    Убедитесь, что все параметры настроены корректно. Вот несколько аспектов для проверки:

    • Endpoint: Проверьте, правильный ли URL указан для endpoint. Сравните с вашим Minio URL и убедитесь, что он доступен.
    • Credentials: Убедитесь, что имя пользователя и пароль правильные и имеют необходимые права доступа к S3.
  2. Проверка Liveness и Readiness:

    • Убедитесь, что ваш Minio сервер работает корректно, и его службы доступны. Попробуйте выполнить запросы к S3 напрямую с помощью утилиты curl или Postman, чтобы проверить наличие соединения и возможность доступа к bucket.
  3. Обработка XML и настройка парсера:
    Если в вашем окружении установлены дополнительные ограничения на парсинг XML (например, в основном приложении или в конфигурациях Java), это может быть источником ошибок. Рассмотрите возможность:

    • Изменения конфигурации клиента S3, чтобы отключить эту строгую политику (хотя это не всегда рекомендуется).
    • Проверки наличия различных версий клиентских библиотек, которые могут вести себя по-разному.
  4. Обновление зависимостей:
    Проверьте, используете ли вы последнюю версию Artifactory, а также актуальные версии библиотек для работы с AWS SDK. Порой обновления могут содержать исправления ошибок, которые решат возникшие проблемы.

  5. Кэширование и производительность:
    Убедитесь, что ваши кэшированные данные не вызывают конфликтов. Иногда проблемы могут возникнуть из-за устаревших или поврежденных кэшированных ресурсов.

Заключение

Связанные проблемы с подключением к S3 Minio Object Store в Artifactory часто требуют комплексного подхода и детального анализа. Следуйте указанным рекомендациям для оперативного устранения неполадок и восстановления полной функциональности. Если после всех этих шагов проблема остается актуальной, рассмотрите возможность обращения в техническую поддержку системы или пользователей других платформ, которые могут предложить дополнительную помощь.

Оцените материал
Добавить комментарий

Капча загружается...