如何 Zlib 膨胀 Elixir 中的字节列表?

How to Zlib inflate an list of bytes in Elixir?

给定 Elixir 中代表压缩文件的二进制文件,我如何将它们传递给 Erlang 的 zlib 进行膨胀?

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

我试过:

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

返回的错误是:

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

需要一个 "iodata" 作为参数,所以也许我只需要转换它?

打开zlib端口后,需要先调用inflateInit再调用inflate:

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