defmodule Pleroma.Uploaders.Local do
+ @behaviour Pleroma.Uploaders.Uploader
alias Pleroma.Web
- def put_file(name, uuid, file, _content_type, should_dedupe) do
-
+ def put_file(name, uuid, tmpfile, _content_type, should_dedupe) do
upload_folder = get_upload_path(uuid, should_dedupe)
url_path = get_url(name, uuid, should_dedupe)
result_file = Path.join(upload_folder, name)
if File.exists?(result_file) do
- File.rm!(file.path)
+ File.rm!(tmpfile)
else
- File.cp!(file.path, result_file)
+ File.cp!(tmpfile, result_file)
end
- url_path
+ {:ok, url_path}
end
def upload_path do
end
defp url_for(file) do
- "#{Web.base_url()}/media/#{file}"
+ settings = Application.get_env(:pleroma, Pleroma.Uploaders.Local)
+
+ Keyword.get(settings, :uploads_url)
+ |> String.replace("{{file}}", file)
+ |> String.replace("{{base_url}}", Web.base_url())
end
end