Sizeable 

An Elixir library to make file sizes human-readable.
Installation
The package can be installed as:
-
Add
sizeableto your list of dependencies inmix.exs:
def deps do
[{:sizeable, "~> 1.0"}]
end-
Ensure
sizeableis started before your application:
def application do
[applications: [:sizeable]]
endUsage
Sizeable.filesize(value, options \\ [])
Returns a human-readable string for the given numeric value.
Arguments:
value(Integer/Float/String) representing the filesize to be converted.options(Struct) representing the options to determine base, rounding and units.
Options:
bits:trueif the result should be in bits,falseif in bytes. Defaults tofalse.spacer: the string that should be between the number and the unit. Defaults to" ".round: the precision that the number should be rounded down to. Defaults to2.base: the base for exponent calculation.2for binary-based numbers, any other Integer can be used. Defaults to2.output: the ouput format to be used, possible options are :string, :list, :map. Defaults to :string.
Example - Get file size for 1024 bytes
Sizeable.filesize(1024)
"1 KB"Example - Get bit-sized file size for 1024 bytes
Sizeable.filesize(1024, bits: true)
"8 Kb"Example - Get output format as list
Sizeable.filesize(1024, output: :list)
[1, "KB"]Example - Get output format as map
Sizeable.filesize(1024, output: :map)
%{result: 1, unit: "KB"}