/ / Come Zlib gonfiare un elenco di byte in elisir? - zlib, elisir

In che modo Zlib gonfia un elenco di byte in elisir? - zlib, elisir

Dato un binario in Elixir che rappresenta un file compresso, come posso passarli allo zlib di Erlang per gonfiarlo?

compressed = <<120, 218, 237, 125, 123, 115, 28, 71, 126, ...>>

Ho provato:

z = :zlib.open()
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)

L'errore restituito è:

** (ErlangError) erlang error: :einval
:zlib.call/3
:zlib.inflate/2

Si aspetta un "iodata" come argomento, quindi forse ho solo bisogno di convertirlo?

risposte:

12 per risposta № 1

Dopo aver aperto la porta zlib, devi chiamare inflateInit su di esso prima di chiamare inflate:

z = :zlib.open()
:zlib.inflateInit(z)
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)