mirror of https://github.com/Xhofe/alist
34 lines
802 B
Go
34 lines
802 B
Go
![]() |
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)
|
||
|
}
|