Exfile
File upload handling in Elixir and Plug. Inspired heavily by Refile. If you use Ruby, check Refile out. I like it. A lot. ๐
Storage Adapters
Exfile, like Refile, supports pluggable storage adapters. Exfile ships with a filesystem-backed storage adapter.
- exfile-memory โ a memory-backed (ETS) storage adapter. This is usually only useful as a cache.
File Processors
Exfile supports pluggable file processors / filters. If youโre working with
images, exfile-imagemagick
is recommended.
Installation
Add exfile to your list of dependencies in
mix.exs
:def deps do [{:exfile, "~> 0.0.2"}] end
Ensure exfile is started before your application:
def application do [applications: [:exfile]] end
- Mount the Exfile routes in your router.
Phoenix
defmodule MyApp.Router do
use MyApp.Web, :router
foward "/attachments", Exfile.Router
...
Plug
defmodule MyApp.Router do
use Plug.Router
forward "/attachments", to: Exfile.Router
...
Configuration
In config.exs
:
config :exfile, Exfile,
secret: "secret string to generate the token used to authenticate requests",
backends: %{
"store" => configuration for a persistent store,
"cache" => configuration for an ephemeral cache
}
See lib/exfile/config.ex
for defaults.