From 7804c965c3c05eed1b499e2e985f82eea1e4e867 Mon Sep 17 00:00:00 2001 From: dev Date: Mon, 28 Nov 2022 09:49:13 +0000 Subject: [PATCH] Add support for DELETE method git-svn-id: file:///srv/svn/repo/marisa/trunk@64 d6811dac-2434-b64a-9ddc-f563ab233461 --- partage.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/partage.go b/partage.go index 8e9f418..6efe844 100644 --- a/partage.go +++ b/partage.go @@ -243,12 +243,35 @@ func uploaderGet(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, conf.rootdir+filename) } +func uploaderDelete(w http.ResponseWriter, r *http.Request) { + // r.URL.Path is sanitized regarding "." and ".." + filename := r.URL.Path + filepath := conf.filepath + filename + + if verbose { + log.Printf("Deleting file %s", filepath) + } + + f, err := os.Open(filepath) + if err != nil { + http.NotFound(w, r) + return + } + f.Close() + + // Force file expiration + writemeta(filepath, 0) + w.WriteHeader(http.StatusNoContent) +} + func uploader(w http.ResponseWriter, r *http.Request) { if verbose { log.Printf("%s: <%s> %s %s %s", r.Host, r.RemoteAddr, r.Method, r.RequestURI, r.Proto) } switch r.Method { + case "DELETE": + uploaderDelete(w, r) case "POST": uploaderPost(w, r) case "PUT":