Cache images for 24 hours
This commit is contained in:
@@ -13,11 +13,16 @@ defmodule MusicLibraryWeb.CoverController do
|
|||||||
%{cover_data: cover_data, cover_hash: etag} ->
|
%{cover_data: cover_data, cover_hash: etag} ->
|
||||||
case get_req_header(conn, "if-none-match") do
|
case get_req_header(conn, "if-none-match") do
|
||||||
[^etag] ->
|
[^etag] ->
|
||||||
send_resp(conn, 304, "")
|
conn
|
||||||
|
# 24 hours
|
||||||
|
|> put_resp_header("cache-control", "public, max-age=86400")
|
||||||
|
|> send_resp(304, "")
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
conn
|
conn
|
||||||
|> put_resp_content_type("image/jpeg", "utf-8")
|
|> put_resp_content_type("image/jpeg", "utf-8")
|
||||||
|
# 24 hours
|
||||||
|
|> put_resp_header("cache-control", "public, max-age=86400")
|
||||||
|> put_resp_header("etag", etag)
|
|> put_resp_header("etag", etag)
|
||||||
|> send_resp(200, cover_data)
|
|> send_resp(200, cover_data)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
|
|||||||
|
|
||||||
assert conn.status == 200
|
assert conn.status == 200
|
||||||
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
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 get_resp_header(conn, "etag") == [record.cover_hash]
|
||||||
|
|
||||||
assert conn.resp_body == record.cover_data
|
assert conn.resp_body == record.cover_data
|
||||||
@@ -35,6 +36,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
|
|||||||
|
|
||||||
assert conn.status == 200
|
assert conn.status == 200
|
||||||
assert get_resp_header(conn, "content-type") == ["image/jpeg; charset=utf-8"]
|
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 get_resp_header(conn, "etag") == [record.cover_hash]
|
||||||
|
|
||||||
assert conn.resp_body == record.cover_data
|
assert conn.resp_body == record.cover_data
|
||||||
@@ -48,6 +50,7 @@ defmodule MusicLibraryWeb.CoverControllerTest do
|
|||||||
|
|
||||||
assert conn.status == 304
|
assert conn.status == 304
|
||||||
assert get_resp_header(conn, "content-type") == []
|
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 get_resp_header(conn, "etag") == []
|
||||||
|
|
||||||
assert conn.resp_body == <<>>
|
assert conn.resp_body == <<>>
|
||||||
|
|||||||
Reference in New Issue
Block a user