Browse Source

detect a filer path is a file or a directory

fix https://github.com/chrislusf/seaweedfs/issues/1004
pull/1020/head
Chris Lu 6 years ago
parent
commit
476a7c269c
  1. 8
      weed/server/filer_server_handlers_read.go

8
weed/server/filer_server_handlers_read.go

@ -21,7 +21,8 @@ import (
func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, isGetMethod bool) {
path := r.URL.Path
if strings.HasSuffix(path, "/") && len(path) > 1 {
isForDirectory := strings.HasSuffix(path, "/")
if isForDirectory && len(path) > 1 {
path = path[:len(path)-1]
}
@ -47,6 +48,11 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request,
return
}
if isForDirectory {
w.WriteHeader(http.StatusNotFound)
return
}
if len(entry.Chunks) == 0 {
glog.V(1).Infof("no file chunks for %s, attr=%+v", path, entry.Attr)
stats.FilerRequestCounter.WithLabelValues("read.nocontent").Inc()

Loading…
Cancel
Save