У меня есть такие записи в Artifactory:
{
"path": "amc-sw/pcm33/pcm21/system-pcm33-20221017104012.raucb",
"type": "file",
Теперь я хочу сопоставить все записи, имеющие путь pcm21.
Я запускаю этот запрос, и он дает мне много записей
"files": [
{
"aql": {
"items.find": {
"repo": "amc-sw",
"$and": [
{
"$and": [
{
"path": {
"$match": "*pcm21/*"
}
} ] } ] } } } ] }
jf rt search --spec query.json --url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --access-token=$ARTIFACTORY_PASS
Изменение соответствия на это также дает много записей
"$match": "*/pcm21*"
Но это дает мне ровно ноль записей
"$match": "*/pcm21/*"
Почему я не могу использовать две косые черты в сопоставлении?
Причина, по которой "$match": "*/pcm21/*"
возвращает 0 результатов, связана со структурой пути "path": "amc-sw/pcm33/pcm21/system-pcm33-20221017104012.raucb",
Файл system-pcm33-20221017104012.raucb
идет сразу после самой глубокой папки — pcm21.
Структура совпадения с косой чертой в конце требует наличия дополнительного каталога после файла pcm21.
предполагая, что путь был бы amc-sw/pcm33/pcm21/inner-path/system-pcm33-20221017104012.raucb
запрос вернет:
{
"results": [
{
"repo": "amc-sw",
"path": "pcm33/pcm21/inner-path",
"name": "system-pcm33-20221017104012.raucb",
"type": "file",
"size": 385,
"created": "2023-03-30T06:19:30.268Z",
"created_by": "admin",
"modified": "2023-03-30T06:19:06.638Z",
"modified_by": "admin",
"updated": "2023-03-30T06:19:30.268Z"
}
],
"range": {
"start_pos": 0,
"end_pos": 1,
"total": 1
}
}