Как получить значения из файла свойств в Ktor?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить значения из файла свойств в Ktor?

Сообщение Anonymous »

Я создал проект Ktor и хотел бы настроить его для подключения к моей базе данных Postgres, не раскрывая свои учетные данные.
Среди результатов, которые я нашел, конфигурация была либо выполнена с жестко запрограммированными данными: р>
val database = Database.connect(
url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1",
user = "root",
driver = "org.h2.Driver",
password = "",
)

или использование переменных системной среды: как подключиться к Postgres с помощью Kotlin/Ktor с запуском плагина
Если возможно, я бы хотел избежать их использования методы.
Насколько я понял, чтобы использовать переменные, не раскрывая их, мне пришлось создать файл .properties, что я и сделал. Однако я не знаю, как загрузить его значения в проект Ktor. Я бы хотел, чтобы мой файл application.yaml выглядел так:
postgres:
url: $POSTGRES_URL
user: $POSTGRES_USER
password: $POSTGRES_PASSWORD

Я также мог бы поместить свои жестко запрограммированные идентификаторы в этот файл и добавить их в свой файл .gitignore. Но я пришел к выводу, что это неправильно, поскольку в документации упоминается, что следует использовать переменные среды.
Что я пробовал:< /p>
  • Я создал файлы конфигурации development.properties и Production.properties в корне проекта со следующим содержимым:

    Я создал файлы конфигурации development.properties и Production.properties в корне проекта со следующим содержимым: li>
POSTGRES_URL=
POSTGRES_USER=
POSTGRES_PASSWORD=
  • В моем файле Databases.kt я попытался получить значения из файла свойств, но они имеют значение NULL
fun Application.configureDatabases() {
val properties = Properties()
val propertiesFile = File("development.properties")

if (!propertiesFile.exists()) {
throw FileNotFoundException("Postgres configuration file not found")
}

val url = properties.getProperty("POSTGRES_URL")
val user = properties.getProperty("POSTGRES_USER")
val password = properties.getProperty("POSTGRES_PASSWORD")

println(url)
println(user)
println(password)

// val database =
// Database.connect(
// url,
// user = user,
// driver = "org.h2.Driver",
// password = password
// )
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... le-in-ktor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»