Merge branch 'media-url-escape' into 'develop'

URI escape file upload URLs

See merge request pleroma/pleroma!665
This commit is contained in:
rinpatch 2019-01-14 18:52:23 +00:00
commit f20bfc9ea5
2 changed files with 16 additions and 1 deletions

View file

@ -215,7 +215,7 @@ defmodule Pleroma.Upload do
end
defp url_from_spec(base_url, {:file, path}) do
[base_url, "media", path]
[base_url, "media", URI.encode(path)]
|> Path.join()
end

View file

@ -137,5 +137,20 @@ defmodule Pleroma.UploadTest do
refute data["name"] == "an [image.jpg"
end
test "escapes invalid characters in url" do
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: "an… image.jpg"
}
{:ok, data} = Upload.store(file)
[attachment_url | _] = data["url"]
assert Path.basename(attachment_url["href"]) == "an%E2%80%A6%20image.jpg"
end
end
end