Simplify S3.open_file with "with" form

master
Marcin Kulik 7 years ago
parent 8c9e9f4c03
commit a96e8518bc

@ -38,21 +38,18 @@ defmodule Asciinema.FileStore.S3 do
def open_file(path, function \\ nil) do def open_file(path, function \\ nil) do
response = bucket() |> S3.get_object(base_path() <> path) |> make_request response = bucket() |> S3.get_object(base_path() <> path) |> make_request
case response do with {:ok, %{headers: headers, body: body}} <- response do
{:ok, %{headers: headers, body: body}} -> body =
body = case List.keyfind(headers, "Content-Encoding", 0) do
case List.keyfind(headers, "Content-Encoding", 0) do {"Content-Encoding", "gzip"} -> :zlib.gunzip(body)
{"Content-Encoding", "gzip"} -> :zlib.gunzip(body) _ -> body
_ -> body
end
if function do
File.open(body, [:ram, :binary, :read], function)
else
File.open(body, [:ram, :binary, :read])
end end
{:error, reason} ->
{:error, reason} if function do
File.open(body, [:ram, :binary, :read], function)
else
File.open(body, [:ram, :binary, :read])
end
end end
end end

Loading…
Cancel
Save