d4e758bbb837c3c3151b0f8adca0abb82acf0e65
[akkoma] / lib / pleroma / uploaders / swift / swift.ex
1 defmodule Pleroma.Uploaders.Swift.Client do
2 use HTTPoison.Base
3
4 def process_url(url) do
5 Enum.join(
6 [Pleroma.Config.get!([Pleroma.Uploaders.Swift, :storage_url]), url],
7 "/"
8 )
9 end
10
11 def upload_file(filename, body, content_type) do
12 token = Pleroma.Uploaders.Swift.Keystone.get_token()
13
14 case put("#{filename}", body, "X-Auth-Token": token, "Content-Type": content_type) do
15 {:ok, %Tesla.Env{status: 201}} ->
16 {:ok, {:file, filename}}
17
18 {:ok, %Tesla.Env{status: 401}} ->
19 {:error, "Unauthorized, Bad Token"}
20
21 {:error, _} ->
22 {:error, "Swift Upload Error"}
23 end
24 end
25 end