Defines the behavior for file storage.
put/3
url/3
delete/3
@callback delete( definition :: atom(), version :: atom(), file_and_scope :: {Waffle.File.t(), any()} ) :: atom()
@callback put( definition :: atom(), version :: atom(), file_and_scope :: {Waffle.File.t(), any()} ) :: {:ok, file_name :: String.t()} | {:error, reason :: any()}
@callback url( definition :: atom(), version :: atom(), file_and_scope :: {Waffle.File.t(), any()} ) :: String.t()