func DeleteHandler(w http.ResponseWriter, r *http.Request) { n := new(storage.Needle) vid, fid, _ := parseURLPath(r.URL.Path) volumeId, _ := strconv.ParseUint(vid, 10, 64) n.ParsePath(fid) if *IsDebug { log.Info("deleting", n) } cookie := n.Cookie count, ok := store.Read(volumeId, n) if ok != nil { m := make(map[string]uint32) m["size"] = 0 writeJson(w, r, m) return } if n.Cookie != cookie { log.Info("delete with unmaching cookie from ", r.RemoteAddr, "agent", r.UserAgent()) return } n.Size = 0 store.Delete(volumeId, n) m := make(map[string]uint32) m["size"] = uint32(count) writeJson(w, r, m) }
func GetHandler(w http.ResponseWriter, r *http.Request) { n := new(storage.Needle) vid, fid, ext := parseURLPath(r.URL.Path) volumeId, _ := strconv.ParseUint(vid, 10, 64) n.ParsePath(fid) if *IsDebug { log.Info("volume", volumeId, "reading", n) } cookie := n.Cookie count, e := store.Read(volumeId, n) if *IsDebug { log.Info("read bytes", count, "error", e) } if n.Cookie != cookie { log.Info("request with unmaching cookie from ", r.RemoteAddr, "agent", r.UserAgent()) return } if ext != "" { w.Header().Set("Content-Type", mime.TypeByExtension(ext)) } w.Write(n.Data) }