1 defmodule Pleroma.Uploaders.Local do
2 @behaviour Pleroma.Uploaders.Uploader
7 {:ok, {:static_dir, upload_path()}}
10 def put_file(name, uuid, tmpfile, _content_type, opts) do
11 upload_folder = get_upload_path(uuid, opts.dedupe)
13 File.mkdir_p!(upload_folder)
15 result_file = Path.join(upload_folder, name)
17 if File.exists?(result_file) do
20 File.cp!(tmpfile, result_file)
23 {:ok, {:file, get_url(name, uuid, opts.dedupe)}}
27 Pleroma.Config.get!([__MODULE__, :uploads])
30 defp get_upload_path(uuid, should_dedupe) do
34 Path.join(upload_path(), uuid)
38 defp get_url(name, uuid, should_dedupe) do
40 :cow_uri.urlencode(name)
42 Path.join(uuid, :cow_uri.urlencode(name))