Как загрузить несколько библиотек в репозиторий Artifactory с помощью REST API? - PullRequest
0 голосов
/ 21 декабря 2018

Ссылаясь на приведенное ниже руководство, я пытаюсь загрузить файлы библиотеки в репозиторий maven на Artifactory;тем не менее, у меня ошибка.

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-DeployArtifactsfromArchive

Мы установили Artifactory на исходный сервер Linux и создали хранилище maven для хранения библиотек для сборки приложений Java.Это подготовлено, потому что наша среда не позволяет доступ к общедоступному Интернету и jcenter.Мы планируем настроить работу сборки с maven на Jenkins, который берет все необходимые библиотеки из репозитория Artifactory.

Файлы библиотеки предоставляются командой разработчиков.Он соответствует структуре maven, поскольку экспортируется из Maven на ПК для локальной разработки.

Я заархивировал файлы, поместил их на сервер и нажал приведенный ниже код.

curl -u user:password -X PUT http://[artifactory URL]/../[repository name] /tmp/src/archive.zip

Ожидаемая успешная загрузка файлов нарепозиторий.Тем не менее, у меня есть ошибка ниже.

{"errors" : [ {
     "status" : 403,
     "message" : ""
 }]
}curl: (3) <url> malformed

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Я выяснил причину.Причина в том, что наша версия не является Artifactory Pro.

Мне сказали, что это Pro, но подтвердил, что фактически установленный SW является версией OSS.

0 голосов
/ 21 декабря 2018

Я заархивировал файлы, поместил их на сервер и нажал на приведенный ниже код.

curl -u user:password -X PUT http://[artifactory URL]/../[repository name] /tmp/src/archive.zip

Несколько проблем здесь:

  • Как ошибкапредполагает, что ваш URL-адрес поврежден.Там не должно быть /../.Просто http://[artifactory URL]/[repository name] должно быть в порядке.
  • Вы задаете curl два пустых пути, которые он интерпретирует как два URL-адреса, которым он должен PUT.Понятно, что это не ваше намерение;Второй путь - это файл, который вы хотите загрузить.Вам нужно указать это, поставив перед ним, скажем, -T.
  • . Этот вызов просто загрузит zip-файл в корень вашего хранилища, но вы захотите вместо этого извлечь содержимое.Как указано в документации, которую вы связали, это можно сделать, если вы передадите заголовок X-Explode-Archive: true или X-Explode-Archive-Atomic: true.

Таким образом, ваш вызов должен выглядеть примерно так:

curl -u user:password -X PUT http://[artifactory URL]/[repository name] -T /tmp/src/archive.zip -H 'X-Explode-Archive: true'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...