mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
Feat: adapt major methods of WebDAV for Cloudreve file system
This commit is contained in:
@@ -10,22 +10,22 @@ import (
|
||||
|
||||
var handler *webdav.Handler
|
||||
|
||||
func init(){
|
||||
handler = &webdav.Handler{
|
||||
func init() {
|
||||
handler = &webdav.Handler{
|
||||
Prefix: "/dav/",
|
||||
FileSystem: webdav.AdapterFS(""),
|
||||
LockSystem: webdav.NewMemLS(),
|
||||
LockSystem: make(map[uint]webdav.LockSystem),
|
||||
}
|
||||
}
|
||||
|
||||
func ServeWebDAV(c *gin.Context){
|
||||
func ServeWebDAV(c *gin.Context) {
|
||||
// 测试用user
|
||||
user,_ := model.GetUserByID(1)
|
||||
c.Set("user",&user)
|
||||
fs,err := filesystem.NewFileSystemFromContext(c)
|
||||
if err != nil{
|
||||
util.Log().Panic("%s",err)
|
||||
user, _ := model.GetUserByID(1)
|
||||
c.Set("user", &user)
|
||||
fs, err := filesystem.NewFileSystemFromContext(c)
|
||||
if err != nil {
|
||||
util.Log().Panic("%s", err)
|
||||
}
|
||||
|
||||
handler.ServeHTTP(c.Writer,c.Request,fs)
|
||||
handler.ServeHTTP(c.Writer, c.Request, fs)
|
||||
}
|
||||
|
||||
@@ -9,10 +9,22 @@ import (
|
||||
)
|
||||
|
||||
// initWebDAV 初始化WebDAV相关路由
|
||||
func initWebDAV(group *gin.RouterGroup){
|
||||
dav := group.Group(":uid")
|
||||
func initWebDAV(group *gin.RouterGroup) {
|
||||
{
|
||||
dav.Any("*path", controllers.ServeWebDAV)
|
||||
group.Any("", func(context *gin.Context) {
|
||||
context.Status(403)
|
||||
context.Abort()
|
||||
})
|
||||
|
||||
group.Any(":uid/*path", controllers.ServeWebDAV)
|
||||
group.Any(":uid", controllers.ServeWebDAV)
|
||||
group.Handle("PROPFIND", ":uid/*path", controllers.ServeWebDAV)
|
||||
group.Handle("PROPFIND", ":uid", controllers.ServeWebDAV)
|
||||
group.Handle("MKCOL", ":uid/*path", controllers.ServeWebDAV)
|
||||
group.Handle("LOCK", ":uid/*path", controllers.ServeWebDAV)
|
||||
group.Handle("UNLOCK", ":uid/*path", controllers.ServeWebDAV)
|
||||
group.Handle("PROPPATCH", ":uid/*path", controllers.ServeWebDAV)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,6 +164,6 @@ func InitRouter() *gin.Engine {
|
||||
}
|
||||
|
||||
// 初始化WebDAV相关路由
|
||||
initWebDAV(v3.Group("dav"))
|
||||
initWebDAV(r.Group("dav"))
|
||||
return r
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user