Merge branch 'fix/s3/filenames-with-spaces' into 'develop'
[akkoma] / lib / pleroma / uploaders / s3.ex
index ce0ed3e34f38ae8ff72ce0dd8c766287a2fbc8a5..87322753dd97b29e0ad23226a1d2819b7e53c604 100644 (file)
@@ -10,7 +10,7 @@ defmodule Pleroma.Uploaders.S3 do
 
     File.rm!(path)
 
-    s3_name = "#{uuid}/#{name}"
+    s3_name = "#{uuid}/#{encode(name)}"
 
     {:ok, _} =
       ExAws.S3.put_object(bucket, s3_name, file_data, [
@@ -21,4 +21,8 @@ defmodule Pleroma.Uploaders.S3 do
 
     {:ok, "#{public_endpoint}/#{bucket}/#{s3_name}"}
   end
+
+  defp encode(name) do
+    String.replace(name, ~r/[^0-9a-zA-Z!.*'()_-]/, "-")
+  end
 end