mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-30 09:37:55 +08:00
38 lines
867 B
Go
38 lines
867 B
Go
package model
|
|
|
|
import (
|
|
. "github.com/mickael-kerjean/nuage/server/common"
|
|
"github.com/mickael-kerjean/nuage/server/model/backend"
|
|
)
|
|
|
|
func NewBackend(ctx *App, conn map[string]string) (IBackend, error) {
|
|
switch conn["type"] {
|
|
case "webdav":
|
|
return backend.NewWebDav(conn, ctx)
|
|
case "ftp":
|
|
return backend.NewFtp(conn, ctx)
|
|
case "sftp":
|
|
return backend.NewSftp(conn, ctx)
|
|
case "git":
|
|
return backend.NewGit(conn, ctx)
|
|
case "s3":
|
|
return backend.NewS3(conn, ctx)
|
|
case "dropbox":
|
|
return backend.NewDropbox(conn, ctx)
|
|
case "gdrive":
|
|
return backend.NewGDrive(conn, ctx)
|
|
default:
|
|
return backend.NewNothing(conn, ctx)
|
|
}
|
|
return nil, NewError("Invalid backend type", 501)
|
|
}
|
|
|
|
func GetHome(b IBackend) (string, error) {
|
|
obj, ok := b.(interface{ Home() (string, error) })
|
|
if ok == false {
|
|
_, err := b.Ls("/")
|
|
return "", err
|
|
}
|
|
return obj.Home()
|
|
}
|