Merge branch 'feature/new-user-routes' into 'develop'
[akkoma] / lib / pleroma / uploaders / local.ex
1 defmodule Pleroma.Uploaders.Local do
2 @behaviour Pleroma.Uploaders.Uploader
3
4 def get_file(_) do
5 {:ok, {:static_dir, upload_path()}}
6 end
7
8 def put_file(upload) do
9 {local_path, file} =
10 case Enum.reverse(String.split(upload.path, "/", trim: true)) do
11 [file] ->
12 {upload_path(), file}
13
14 [file | folders] ->
15 path = Path.join([upload_path()] ++ Enum.reverse(folders))
16 File.mkdir_p!(path)
17 {path, file}
18 end
19
20 result_file = Path.join(local_path, file)
21
22 unless File.exists?(result_file) do
23 File.cp!(upload.tempfile, result_file)
24 end
25
26 :ok
27 end
28
29 def upload_path do
30 Pleroma.Config.get!([__MODULE__, :uploads])
31 end
32 end