Как прочитать размер в байтах синтаксиса в конфигурации воспроизведения (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" может преобразовать его в число.
Удачи тебе