У меня запущен и работает сервер конфигурации с соответствующей настройкой application.yml
spring:
application:
name: config
...
searchPaths:
- '{application}'
- '{application}/{profile}'
Я хотел бы получить доступ к файлу, который не является application.properties, что-то вроде myfile.txt. Если у меня есть макет git
/myapp/nested/folder/myfile.txt
Я хочу иметь доступ к этому файлу. Согласно документы Spring Config Server, я должен сделать это через /{name}/{profile}/{label}/{path}, но я не могу заставить работать какие-либо пути.
Вкратце: как получить вложенные файлы конфигурации из репозитория git через сервер конфигурации?
(_) вместо /, чтобы разграничение между {label} и {application} и т. д. можно было разобрать. Я все равно добавлю эти попытки, чтобы показать, что они не работают.
Они предназначены только для заполнителей в конфигурации, а не для пути к файлу API.
TL;DR: документация неверна. Конечная точка /{name}/{profile}/{label}/{path} должна быть записана как /{application}/{profile}/{label}/{path}. Вам просто нужно убедиться, что один из ваших searchPaths/{path} может разрешить ваш файл.
Во-первых, {label} — это, как всегда, имя ветки git (вероятно, «мастер»).
Во-вторых, {path} может быть абсолютным путем к файлу. Он использует /, то есть myapp/nested/folder/myfile.txt, а не (_), как требуется в {application} или {label}.
В-третьих, пути поиска в вопросе установлены как '{application}' и '{application}/{profile}', а также путь поиска по умолчанию /, корневой каталог репозитория git. Они определяют места, где Config Server будет искать обычный текстовый файл:
/{expanded application}/{path}
/{expanded application}/{profile}/{path}
/{path}
Обратите внимание, что только {application} можно развернуть в несколько папок с помощью (_) и что только {path} можно включить в несколько папок с помощью /. Например, с этими searchPaths и файлом, расположенным в /myapp/nested/folder/myfile.txt, допустимы следующие запросы:
/asdf/asdf/master/myapp/nested/folder/myfile.txt
/myapp/asdf/master/nested/folder/myfile.txt
/myapp/nested/master/folder/myfile.txt
/myapp(_)nested(_)folder/asdf/master/myfile.txt
/myapp(_)nested/folder/master/myfile.txt
где asdf может быть любой произвольной строкой.
Я, конечно, могу создать сервер конфигурации и указать такой путь http://localhost:8888/foo/default/master/nested/hello.txt, который правильно получает файлы в каталоге.
Похоже, ты прав. Можно указать полный путь с помощью /. Я бы хотел, чтобы это было задокументировано где-нибудь на странице «обслуживание простых текстовых файлов», а не только с файлами верхнего уровня.
Отредактировал мой ответ, спасибо за помощь. Я хотел бы сделать это! надеюсь, я доберусь до него где-нибудь на этой неделе.
Я думаю, что поле {name} неверно, так как оно сопоставляется с {application} в searchPaths, которое я установил, и называется {application} везде в документации. Другие части были просто неясны, так как не было примера с вложенным путем к файлу.
Попробуйте использовать косую черту, а не
(_)?