Skip to content

Commit 3590c73

Browse files
committed
image: tag file_hash with hash algorithm and format in hex
1 parent bded9e8 commit 3590c73

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/data/image.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ defmodule Memorable.Data.Image.DerivedMetadata do
5959
with {:read_file, {:ok, data}} <- {:read_file, File.read(path)},
6060
{:read_metadata, {:ok, metadata}} <-
6161
{:read_metadata, Image.read_metadata(image)} do
62+
sha256 = Base.encode16(:crypto.hash(:sha256, data), case: :lower)
63+
6264
{:ok,
6365
%__MODULE__{
6466
image_id: image_id,
65-
file_hash: :crypto.hash(:sha256, data),
67+
file_hash: {:sha256, sha256},
6668
original_datetime: original_datetime(metadata),
6769
lens_model: Map.get(metadata, "LensID"),
6870
body_model: Map.get(metadata, "Model"),

test/data/image_test.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ defmodule Memorable.Data.ImageTest do
4141
describe "DerivedMetadata.from_image/1" do
4242
test "parses exif data for the given image", %{image: image} do
4343
{:ok, metadata} = DerivedMetadata.from_image(image) |> IO.inspect()
44+
assert Map.get(metadata, :image_id) == Map.get(image, :id)
45+
46+
assert Map.get(metadata, :file_hash) ==
47+
{:sha256, "3932e8b3f41678e215981303d8320ab70c00fd35b0e8f063eec3087c7de801df"}
48+
4449
assert Map.get(metadata, :original_datetime) == ~N[2025-03-17 18:38:23]
4550
assert Map.get(metadata, :body_model) == "Canon EOS 1000D"
4651
assert Map.get(metadata, :lens_model) == "Canon EF-S 55-250mm f/4-5.6 IS STM"

0 commit comments

Comments
 (0)