aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2018-10-29 18:00:59 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2018-10-29 18:00:59 +0000
commit36825932eb04d9db3e2d24b02368d7dd709dea23 (patch)
tree4785078ba8a5a7b6826508d03aaf620d792fe46b /lib
parentf407831120318dcd8fa5b31f39137cdb1ee87519 (diff)
downloadpleroma-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.ex14
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