You've already forked filebrowser
mirror of
https://github.com/filebrowser/filebrowser.git
synced 2025-11-26 14:25:26 +08:00
aadd first files based on caddy-filemanager
Former-commit-id: 20baeeb41a
This commit is contained in:
62
cmd/filemanager/main.go
Normal file
62
cmd/filemanager/main.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/net/webdav"
|
||||
|
||||
"github.com/hacdias/filemanager"
|
||||
handlers "github.com/hacdias/filemanager/http"
|
||||
)
|
||||
|
||||
var cfg *filemanager.Config
|
||||
|
||||
func handler(w http.ResponseWriter, r *http.Request) {
|
||||
handlers.ServeHTTP(w, r, cfg)
|
||||
}
|
||||
|
||||
func main() {
|
||||
cfg = &filemanager.Config{User: &filemanager.User{}}
|
||||
cfg.Scope = "."
|
||||
cfg.FileSystem = webdav.Dir(cfg.Scope)
|
||||
cfg.BaseURL = "/"
|
||||
cfg.HugoEnabled = false
|
||||
cfg.Users = map[string]*filemanager.User{}
|
||||
cfg.AllowCommands = true
|
||||
cfg.AllowEdit = true
|
||||
cfg.AllowNew = true
|
||||
cfg.Commands = []string{"git", "svn", "hg"}
|
||||
cfg.BeforeSave = func(r *http.Request, c *filemanager.Config, u *filemanager.User) error { return nil }
|
||||
cfg.AfterSave = func(r *http.Request, c *filemanager.Config, u *filemanager.User) error { return nil }
|
||||
cfg.Rules = []*filemanager.Rule{{
|
||||
Regex: true,
|
||||
Allow: false,
|
||||
Regexp: regexp.MustCompile("\\/\\..+"),
|
||||
}}
|
||||
|
||||
cfg.BaseURL = strings.TrimPrefix(cfg.BaseURL, "/")
|
||||
cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/")
|
||||
cfg.BaseURL = "/" + cfg.BaseURL
|
||||
cfg.WebDavURL = ""
|
||||
|
||||
if cfg.BaseURL == "/" {
|
||||
cfg.BaseURL = ""
|
||||
}
|
||||
|
||||
if cfg.WebDavURL == "" {
|
||||
cfg.WebDavURL = "webdav"
|
||||
}
|
||||
|
||||
cfg.PrefixURL = ""
|
||||
cfg.WebDavURL = cfg.BaseURL + "/" + strings.TrimPrefix(cfg.WebDavURL, "/")
|
||||
cfg.Handler = &webdav.Handler{
|
||||
Prefix: cfg.WebDavURL,
|
||||
FileSystem: cfg.FileSystem,
|
||||
LockSystem: webdav.NewMemLS(),
|
||||
}
|
||||
|
||||
http.HandleFunc("/", handler)
|
||||
http.ListenAndServe(":8080", nil)
|
||||
}
|
||||
Reference in New Issue
Block a user