Do not prepend /media/ when using base_url
This ensures admin has full control over the path where media resides.
This commit is contained in:
parent
7286cdff7a
commit
84fca14c3c
@ -228,7 +228,14 @@ defmodule Pleroma.Upload do
|
|||||||
""
|
""
|
||||||
end
|
end
|
||||||
|
|
||||||
[base_url, "media", path]
|
prefix =
|
||||||
|
if is_nil(Pleroma.Config.get([__MODULE__, :base_url])) do
|
||||||
|
"media"
|
||||||
|
else
|
||||||
|
""
|
||||||
|
end
|
||||||
|
|
||||||
|
[base_url, prefix, path]
|
||||||
|> Path.join()
|
|> Path.join()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -122,24 +122,6 @@ defmodule Pleroma.UploadTest do
|
|||||||
assert String.starts_with?(url, Pleroma.Web.base_url() <> "/media/")
|
assert String.starts_with?(url, Pleroma.Web.base_url() <> "/media/")
|
||||||
end
|
end
|
||||||
|
|
||||||
test "returns a media url with configured base_url" do
|
|
||||||
base_url = "https://cache.pleroma.social"
|
|
||||||
|
|
||||||
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
|
|
||||||
|
|
||||||
file = %Plug.Upload{
|
|
||||||
content_type: "image/jpg",
|
|
||||||
path: Path.absname("test/fixtures/image_tmp.jpg"),
|
|
||||||
filename: "image.jpg"
|
|
||||||
}
|
|
||||||
|
|
||||||
{:ok, data} = Upload.store(file, base_url: base_url)
|
|
||||||
|
|
||||||
assert %{"url" => [%{"href" => url}]} = data
|
|
||||||
|
|
||||||
assert String.starts_with?(url, base_url <> "/media/")
|
|
||||||
end
|
|
||||||
|
|
||||||
test "copies the file to the configured folder with deduping" do
|
test "copies the file to the configured folder with deduping" do
|
||||||
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
|
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
|
||||||
|
|
||||||
@ -266,4 +248,32 @@ defmodule Pleroma.UploadTest do
|
|||||||
"%3A%3F%23%5B%5D%40%21%24%26%5C%27%28%29%2A%2B%2C%3B%3D.jpg"
|
"%3A%3F%23%5B%5D%40%21%24%26%5C%27%28%29%2A%2B%2C%3B%3D.jpg"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "Setting a custom base_url for uploaded media" do
|
||||||
|
setup do
|
||||||
|
Pleroma.Config.put([Pleroma.Upload, :base_url], "https://cache.pleroma.social")
|
||||||
|
|
||||||
|
on_exit(fn ->
|
||||||
|
Pleroma.Config.put([Pleroma.Upload, :base_url], nil)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns a media url with configured base_url" do
|
||||||
|
base_url = Pleroma.Config.get([Pleroma.Upload, :base_url])
|
||||||
|
|
||||||
|
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
|
||||||
|
|
||||||
|
file = %Plug.Upload{
|
||||||
|
content_type: "image/jpg",
|
||||||
|
path: Path.absname("test/fixtures/image_tmp.jpg"),
|
||||||
|
filename: "image.jpg"
|
||||||
|
}
|
||||||
|
|
||||||
|
{:ok, data} = Upload.store(file, base_url: base_url)
|
||||||
|
|
||||||
|
assert %{"url" => [%{"href" => url}]} = data
|
||||||
|
|
||||||
|
refute String.starts_with?(url, base_url <> "/media/")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user