aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRachel Fae Fox <allisonthefox@gmail.com>2019-09-23 20:38:53 +0000
committerrinpatch <rinpatch@sdf.org>2019-09-23 20:38:53 +0000
commit63af6951fa42429d0a02861d5ad1afdd053864cf (patch)
treeab6ce289d6cedbb273832c7e56d273990b537c38 /lib
parentad2ffd7ef1cbb8afff6ecee2cbda79414a12fbaa (diff)
downloadpleroma-63af6951fa42429d0a02861d5ad1afdd053864cf.tar.gz
add tunable for stream uploads, as needed for jortage to work.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/uploaders/s3.ex22
1 files changed, 16 insertions, 6 deletions
diff --git a/lib/pleroma/uploaders/s3.ex b/lib/pleroma/uploaders/s3.ex
index 8c353bed3..9876b6398 100644
--- a/lib/pleroma/uploaders/s3.ex
+++ b/lib/pleroma/uploaders/s3.ex
@@ -38,16 +38,26 @@ defmodule Pleroma.Uploaders.S3 do
def put_file(%Pleroma.Upload{} = upload) do
config = Config.get([__MODULE__])
bucket = Keyword.get(config, :bucket)
+ streaming = Keyword.get(config, :streaming_enabled)
s3_name = strict_encode(upload.path)
op =
- upload.tempfile
- |> ExAws.S3.Upload.stream_file()
- |> ExAws.S3.upload(bucket, s3_name, [
- {:acl, :public_read},
- {:content_type, upload.content_type}
- ])
+ if streaming do
+ upload.tempfile
+ |> ExAws.S3.Upload.stream_file()
+ |> ExAws.S3.upload(bucket, s3_name, [
+ {:acl, :public_read},
+ {:content_type, upload.content_type}
+ ])
+ else
+ {:ok, file_data} = File.read(upload.tempfile)
+
+ ExAws.S3.put_object(bucket, s3_name, file_data, [
+ {:acl, :public_read},
+ {:content_type, upload.content_type}
+ ])
+ end
case ExAws.request(op) do
{:ok, _} ->