如何在播放配置(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' 可以将其转换为一个数字。
祝你好运
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' 可以将其转换为一个数字。
祝你好运