diff options
Diffstat (limited to 'webdav.go')
-rw-r--r-- | webdav.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/webdav.go b/webdav.go new file mode 100644 index 0000000..3f3f7d5 --- /dev/null +++ b/webdav.go @@ -0,0 +1,28 @@ +package main + +import ( + "github.com/minio/minio-go/v7" + "golang.org/x/net/webdav" + "log" + "net/http" +) + +type WebDav struct { + WithConfig *Config +} + +func (wd WebDav) WithMC(mc *minio.Client) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + (&webdav.Handler{ + Prefix: wd.WithConfig.DavPath, + FileSystem: NewS3FS(mc), + LockSystem: webdav.NewMemLS(), + Logger: func(r *http.Request, err error) { + log.Printf("INFO: %s %s %s\n", r.RemoteAddr, r.Method, r.URL) + if err != nil { + log.Printf("ERR: %v", err) + } + }, + }).ServeHTTP(w, r) + }) +} |