поиск артефакта в артефакте с помощью curl - PullRequest
0 голосов
/ 06 августа 2020

Я снова и снова читаю REST api, но не могу понять точный синтаксис того, как искать артефакт в артефакте с помощью curl.

Вот что я делаю:

result=$(curl -u ${ArtifactoryUsername}:${ArtifactoryAPIKey} -X GET "${artifactory_repo}/api/search/artifact?name=${generated_package_name}")
echo "${result}"

Здесь artifactory_repo - это

https://xxx.artifactory.xxx.com:443/artifactory/hyc-ca-container-helm-local

, а hy c -ca-container-helm-local - это мое репо, которое я уже добавил в конец своего артефакта. url

Файл есть в артефакте, но я получаю сообщение, что файл не найден. Я уверен, что причина в том, что я использую неправильный синтаксис.

Может ли кто-нибудь помочь мне здесь?

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Если вы ищете артефакт в заданном репозитории (используя API поиска артефактов), вам следует использовать следующий формат:

GET /api/search/artifact?name=lib&repos=libs-release-local

Для кода, который у вас есть в вашем вопросе, он должен быть :

result=$(curl -u ${ArtifactoryUsername}:${ArtifactoryAPIKey} -X GET "https://xxx.artifactory.xxx.com:443/artifactory/api/search/artifact?name=${generated_package_name}&repos=hyc-ca-container-helm-local")

Обратите внимание, что имя репозитория (hy c -ca-container-helm-local) должно быть предоставлено как параметр запроса, а не как часть URL-адреса. Вы поместили его перед контекстом api, что привело к ошибке 404.

1 голос
/ 06 августа 2020

Вы можете использовать Artifactory Query Language (AQL) вместе с REST API и выполнять поиск.

...