package server import ( "github.com/Xhofe/alist/server/webdav" "github.com/gin-gonic/gin" ) var handler *webdav.Handler func init() { handler = &webdav.Handler{ Prefix: "/dav", LockSystem: webdav.NewMemLS(), } } func WebDav(r *gin.Engine) { dav := r.Group("/dav") dav.Any("/*path", ServeWebDAV) dav.Any("", ServeWebDAV) dav.Handle("PROPFIND", "/*path", ServeWebDAV) dav.Handle("PROPFIND", "", ServeWebDAV) dav.Handle("MKCOL", "/*path", ServeWebDAV) dav.Handle("LOCK", "/*path", ServeWebDAV) dav.Handle("UNLOCK", "/*path", ServeWebDAV) dav.Handle("PROPPATCH", "/*path", ServeWebDAV) dav.Handle("COPY", "/*path", ServeWebDAV) dav.Handle("MOVE", "/*path", ServeWebDAV) } func ServeWebDAV(c *gin.Context) { fs := webdav.FileSystem{} handler.ServeHTTP(c.Writer,c.Request,&fs) }