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.
This commit is contained in:
Mark Felder 2021-01-08 17:24:19 -06:00
parent 86dcfb4eb9
commit e8bf060e6e
2 changed files with 23 additions and 16 deletions

View file

@ -245,6 +245,29 @@ def base_url 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) ->

View file

@ -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