Как прочитать размер в байтах синтаксиса в конфигурации воспроизведения (HOCON)?

В документации Play утверждается, что она поддерживает объявление размеров в количественных префиксах (МБ, МиБ, ГБ и т. Д.). Однако в ней не указано, как я должен читать такие значения в коде.

У меня есть следующее значение конфигурации:

discavo.upload.image.maxSize = 2 MiB

и я попытался загрузить его как

current.configuration.getInt("discavo.upload.image.maxSize").get

но получил следующую ошибку:

Configuration error[conf/application.conf: 129: discavo.upload.image.maxSize has type STRING rather than NUMBER]

2 ответа

Решение

Я обнаружил, что вы должны использовать getBytes вместо getInt, который возвращает Option[Long]:

current.configuration.getBytes("discavo.upload.image.maxSize").get.toInt

В конфе просто напишите следующее:

discavo.upload.image.maxSize = 2

вместо вашего кода:

discavo.upload.image.maxSize = 2 MiB

причина в том, что когда вы получаете "discavo.upload.image.maxSize", вы получаете "2 МиБ", включая число "2" и его единицу "МиБ", что метод "toInt" может преобразовать его в число.

Удачи тебе

Другие вопросы по тегам