Cache images for 24 hours

This commit is contained in:
Claudio Ortolina
2024-12-15 12:09:29 +03:00
parent 6660d195e4
commit e4fe4e7f4b
2 changed files with 9 additions and 1 deletions
@@ -13,11 +13,16 @@ defmodule MusicLibraryWeb.CoverController do
%{cover_data: cover_data, cover_hash: etag} ->
case get_req_header(conn, "if-none-match") do
[^etag] ->
send_resp(conn, 304, "")
conn
# 24 hours
|> put_resp_header("cache-control", "public, max-age=86400")
|> send_resp(304, "")
_ ->
conn
|> put_resp_content_type("image/jpeg", "utf-8")
# 24 hours
|> put_resp_header("cache-control", "public, max-age=86400")
|> put_resp_header("etag", etag)
|> send_resp(200, cover_data)
end
@@ -22,6 +22,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
assert conn.status == 200
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
assert get_resp_header(conn, "cache-control") == ["public, max-age=86400"]
assert get_resp_header(conn, "etag") == [record.cover_hash]
assert conn.resp_body == record.cover_data
@@ -35,6 +36,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
assert conn.status == 200
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
assert get_resp_header(conn, "cache-control") == ["public, max-age=86400"]
assert get_resp_header(conn, "etag") == [record.cover_hash]
assert conn.resp_body == record.cover_data
@@ -48,6 +50,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
assert conn.status == 304
assert get_resp_header(conn, "content-type") == []
assert get_resp_header(conn, "cache-control") == ["public, max-age=86400"]
assert get_resp_header(conn, "etag") == []
assert conn.resp_body == <<>>