diff options
author | William Pitcock <nenolod@dereferenced.org> | 2018-10-29 18:00:59 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2018-10-29 18:00:59 +0000 |
commit | 36825932eb04d9db3e2d24b02368d7dd709dea23 (patch) | |
tree | 4785078ba8a5a7b6826508d03aaf620d792fe46b /lib | |
parent | f407831120318dcd8fa5b31f39137cdb1ee87519 (diff) | |
download | pleroma-36825932eb04d9db3e2d24b02368d7dd709dea23.tar.gz |
s3 uploader: add new feature to force public attachment URIs to go through media proxy
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/uploaders/s3.ex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/uploaders/s3.ex b/lib/pleroma/uploaders/s3.ex index 87322753d..40a836460 100644 --- a/lib/pleroma/uploaders/s3.ex +++ b/lib/pleroma/uploaders/s3.ex @@ -1,10 +1,13 @@ defmodule Pleroma.Uploaders.S3 do + alias Pleroma.Web.MediaProxy + @behaviour Pleroma.Uploaders.Uploader def put_file(name, uuid, path, content_type, _should_dedupe) do settings = Application.get_env(:pleroma, Pleroma.Uploaders.S3) bucket = Keyword.fetch!(settings, :bucket) public_endpoint = Keyword.fetch!(settings, :public_endpoint) + force_media_proxy = Keyword.fetch!(settings, :force_media_proxy) {:ok, file_data} = File.read(path) @@ -19,7 +22,16 @@ defmodule Pleroma.Uploaders.S3 do ]) |> ExAws.request() - {:ok, "#{public_endpoint}/#{bucket}/#{s3_name}"} + url_base = "#{public_endpoint}/#{bucket}/#{s3_name}" + + public_url = + if force_media_proxy do + MediaProxy.url(url_base) + else + url_base + end + + {:ok, public_url} end defp encode(name) do |