如何在播放配置(HOCON)中读取字节语法的大小?

How to read size in bytes syntax in Play configuration (HOCON)?

Play 文档声称它支持在数量前缀(MB、MiB、GB 等)中声明大小。但是它没有说明我应该如何在代码中读取这些值。

我有以下配置值:

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]

我发现您应该使用 getBytes 而不是 getInt,其中 returns 和 Option[Long]:

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

在conf中,只写如下:

discavo.upload.image.maxSize = 2

代替您的代码:

discavo.upload.image.maxSize = 2 MiB

原因是当你得到 "discavo.upload.image.maxSize" 时,你得到 '2 MiB',包括数字 '2' 及其单位 'MiB',方法 'toInt' 可以将其转换为一个数字。

祝你好运