我正在从Google云端存储中下载文件(https://cloud.google.com/storage/docs/json_api/v1/objects/get#parameters)
文件的二进制内容在响应正文中返回。使用:zlib.uncompress抛出我
** (ErlangError) erlang error: :data_error
我通过将文件保存在磁盘上并手动提取来检查文件的内容。
有没有其他方法可以在不使用unix命令的情况下解压缩elixir / erlang中的文件?
编辑:
检查二进制文件给了我一个好的
r.body |> inspect(binaries: :as_binaries) |> IO.puts
<<31, 139, 8, 0, 0, 0, 0, 0, 0, 0, 212, 253, 91, 115, 27, 73, 178, 53, 10, 190, 207, 175, 104, 219, 207, 95, 193, 50, 174, 153, 57, 111, 188, 64, 36, 27, 44, 146, 6, 146, 170, 22, 95, 218, 212, 85, 234, 106, 157, 93, ...>>
:ok
答案 0 :(得分:4)
您可以尝试使用erlang中的zip。您要查找的功能是unzip
:zip.unzip(zipped_file)
答案 1 :(得分:1)
我明白了。从erlang论坛(http://erlang.org/pipermail/erlang-questions/2009-November/047832.html)读取我发现了正确的步骤:
z = :zlib.open
:zlib.inflateInit(z, 31)
:zlib.inflate(z, result.body)
谢谢大家!