I guess Arc’s configuration shouldn’t be much different that in previous Phoenix versions- you have entry for arc in config.exs and for schema you are interested to use file upload, you use proper uses of Arc.Definition and Arc.Ecto.Definition.
I used in my own projects Arc and Arc_ecto, but in the company product we considered Arc to be to much erroneous - upload didn’t work so we decided to drop using Arc at all and it concluded that I wrote simple uploader on my own, which relies on ex_aws.
Basically - Arc creates it’s own file based on the input - it requires filename and binary, so it wraps a map or Plug.Upload to do the upload.
Maybe the function definition of ExAws.S3.put_object/4 is not self explanatory, but it wants you to pass:
- name of the S3 bucket
- file destination
- file content - binary
- additional options like ACL
With that knowledge you can intercept Plug Upload and use ex_aws directly without Arc.
I guess you can still keep uploaders in lib/myapp/web.






















