logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: e8bf060e6e55396e7a0dbb53dacbf470d8f56beb
parent 86dcfb4eb990dc8d06f799663264655ce04d0d5d
Author: Mark Felder <feld@feld.me>
Date:   Fri,  8 Jan 2021 17:24:19 -0600

Move construction of S3 base URL with optional namespace and bucket to Upload.base_url/0

Now we should have a correct base URL for S3 hosted objects throughout the codebase.

Diffstat:

Mlib/pleroma/upload.ex23+++++++++++++++++++++++
Mlib/pleroma/uploaders/s3.ex16----------------
2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex @@ -245,6 +245,29 @@ defmodule Pleroma.Upload do Pleroma.Web.base_url() <> "/media/" end + Pleroma.Uploaders.S3 -> + bucket = Config.get([Pleroma.Uploaders.S3, :bucket]) + + bucket_with_namespace = + cond do + truncated_namespace = Config.get([Pleroma.Uploaders.S3, :truncated_namespace]) -> + truncated_namespace + + namespace = Config.get([Pleroma.Uploaders.S3, :bucket_namespace]) -> + namespace <> ":" <> bucket + + true -> + bucket + end + + cond do + !is_nil(public_endpoint) -> + Path.join([public_endpoint, bucket_with_namespace]) + + true -> + Path.join([upload_base_url, bucket_with_namespace]) + end + _ -> cond do !is_nil(public_endpoint) -> diff --git a/lib/pleroma/uploaders/s3.ex b/lib/pleroma/uploaders/s3.ex @@ -12,26 +12,10 @@ defmodule Pleroma.Uploaders.S3 do # links with less strict filenames @impl true def get_file(file) do - config = Config.get([__MODULE__]) - bucket = Keyword.fetch!(config, :bucket) - - bucket_with_namespace = - cond do - truncated_namespace = Keyword.get(config, :truncated_namespace) -> - truncated_namespace - - namespace = Keyword.get(config, :bucket_namespace) -> - namespace <> ":" <> bucket - - true -> - bucket - end - {:ok, {:url, Path.join([ Pleroma.Upload.base_url(), - bucket_with_namespace, strict_encode(URI.decode(file)) ])}} end