defmodule Pleroma.Upload do
alias Ecto.UUID
- @storage_backend Application.get_env(:pleroma, Pleroma.Upload)
- |> Keyword.fetch!(:uploader)
-
def check_file_size(path, nil), do: true
def check_file_size(path, size_limit) do
true <- check_file_size(file.path, size_limit) do
strip_exif_data(content_type, file.path)
- {:ok, url_path} =
- @storage_backend.put_file(name, uuid, file.path, content_type, should_dedupe)
+ {:ok, url_path} = uploader().put_file(name, uuid, file.path, content_type, should_dedupe)
%{
"type" => "Document",
content_type
)
- {:ok, url_path} =
- @storage_backend.put_file(name, uuid, tmp_path, content_type, should_dedupe)
+ {:ok, url_path} = uploader().put_file(name, uuid, tmp_path, content_type, should_dedupe)
%{
"type" => "Image",
"audio/mpeg"
<<0x4F, 0x67, 0x67, 0x53, 0x00, 0x02, 0x00, 0x00>> ->
- "audio/ogg"
+ case IO.binread(f, 27) do
+ <<_::size(160), 0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61>> ->
+ "video/ogg"
+
+ _ ->
+ "audio/ogg"
+ end
<<0x52, 0x49, 0x46, 0x46, _, _, _, _>> ->
"audio/wav"
_e -> "application/octet-stream"
end
end
+
+ defp uploader() do
+ Pleroma.Config.get!([Pleroma.Upload, :uploader])
+ end
end