projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Initial attempt at updating return type
[akkoma]
/
lib
/
pleroma
/
uploaders
/
s3.ex
diff --git
a/lib/pleroma/uploaders/s3.ex
b/lib/pleroma/uploaders/s3.ex
index 2d1ddef757fe741b9d0d48ba1b28e22fb8da6b5a..e7de3f3e0de84da366987a3b0a89ca9429080c20 100644
(file)
--- a/
lib/pleroma/uploaders/s3.ex
+++ b/
lib/pleroma/uploaders/s3.ex
@@
-1,34
+1,45
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Uploaders.S3 do
@behaviour Pleroma.Uploaders.Uploader
require Logger
defmodule Pleroma.Uploaders.S3 do
@behaviour Pleroma.Uploaders.Uploader
require Logger
- # The file name is re-encoded with S3's constraints here to comply with previous links with less strict filenames
+ # The file name is re-encoded with S3's constraints here to comply with previous
+ # links with less strict filenames
def get_file(file) do
config = Pleroma.Config.get([__MODULE__])
def get_file(file) do
config = Pleroma.Config.get([__MODULE__])
+ bucket = Keyword.fetch!(config, :bucket)
+
+ bucket_with_namespace =
+ if namespace = Keyword.get(config, :bucket_namespace) do
+ namespace <> ":" <> bucket
+ else
+ bucket
+ end
{:ok,
{:url,
Path.join([
Keyword.fetch!(config, :public_endpoint),
{:ok,
{:url,
Path.join([
Keyword.fetch!(config, :public_endpoint),
-
Keyword.fetch!(config, :bucket)
,
+
bucket_with_namespace
,
strict_encode(URI.decode(file))
])}}
end
strict_encode(URI.decode(file))
])}}
end
- def put_file(
name, uuid, path, content_type, _opts
) do
+ def put_file(
%Pleroma.Upload{} = upload
) do
config = Pleroma.Config.get([__MODULE__])
bucket = Keyword.get(config, :bucket)
config = Pleroma.Config.get([__MODULE__])
bucket = Keyword.get(config, :bucket)
- {:ok, file_data} = File.read(path)
-
- File.rm!(path)
+ {:ok, file_data} = File.read(upload.tempfile)
- s3_name =
"#{uuid}/#{strict_encode(name)}"
+ s3_name =
strict_encode(upload.path)
op =
ExAws.S3.put_object(bucket, s3_name, file_data, [
{:acl, :public_read},
op =
ExAws.S3.put_object(bucket, s3_name, file_data, [
{:acl, :public_read},
- {:content_type, content_type}
+ {:content_type,
upload.
content_type}
])
case ExAws.request(op) do
])
case ExAws.request(op) do