type IBackend interface { Init(params map[string]string, app *App) (IBackend, error) // constructor Ls(path string) ([]os.FileInfo, error) // list files in a folder Cat(path string) (io.ReadCloser, error) // download a file Mkdir(path string) error // create a folder Rm(path string) error // remove something Mv(from string, to string) error // rename something Save(path string, file io.Reader) error // save a file Touch(path string) error // create a file LoginForm() Form // dynamic form generation for the login }