2016-01-26 1 views
0

La documentation Play affirme qu'elle prend en charge la déclaration des tailles en préfixes de quantité (MB, MiB, GB, etc.). Cependant, elle n'indique pas comment je dois lire ces valeurs dans le code.Comment lire la taille en octets syntaxe dans la configuration de jeu (HOCON)?

je la valeur de configuration suivante:

discavo.upload.image.maxSize = 2 MiB 

et moi avons essayé de le charger comme

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

mais a obtenu l'erreur suivante:

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

Répondre

0

je trouve que vous devriez utiliser getBytes au lieu de getInt, ce qui renvoie un Option[Long]:

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

dans la conf, il suffit d'écrire comme suit:

discavo.upload.image.maxSize = 2 

au lieu de votre code:

discavo.upload.image.maxSize = 2 MiB 

la raison est que lorsque vous obtenez le « discavo.upload. image.maxSize ", vous obtenez '2 MiB' incluant le nombre '2' et son unité 'MiB' que la méthode 'toInt' peut convertir en un nombre.

Bonne chance avec vous

+1

Je ne suis pas attendre pour obtenir '2', mais' 2097152', à savoir '2^20', que l'unité représente correctement. –