aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzemul <zemul@foxmail.com>2022-10-12 22:14:49 +0800
committerGitHub <noreply@github.com>2022-10-12 07:14:49 -0700
commita05725aea6b6c4e99a5b6d9541b94fd7bbd15ab9 (patch)
tree4d6eefe06da5abeaa4d2177cd6bc119418ebcb2f
parente55076c46f4d4f4b08d940ac0a972f445776e029 (diff)
downloadseaweedfs-a05725aea6b6c4e99a5b6d9541b94fd7bbd15ab9.tar.xz
seaweedfs-a05725aea6b6c4e99a5b6d9541b94fd7bbd15ab9.zip
filer: get directory metadata (#3833)
-rw-r--r--weed/server/filer_server_handlers_read.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go
index 8c3d4bcd8..645a3fb44 100644
--- a/weed/server/filer_server_handlers_read.go
+++ b/weed/server/filer_server_handlers_read.go
@@ -107,9 +107,15 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
return
}
+ query := r.URL.Query()
+
if entry.IsDirectory() {
if fs.option.DisableDirListing {
- w.WriteHeader(http.StatusMethodNotAllowed)
+ w.WriteHeader(http.StatusForbidden)
+ return
+ }
+ if query.Get("metadata") == "true" {
+ writeJsonQuiet(w, r, http.StatusOK, entry)
return
}
if entry.Attr.Mime == "" {
@@ -125,7 +131,6 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
return
}
- query := r.URL.Query()
if query.Get("metadata") == "true" {
if query.Get("resolveManifest") == "true" {
if entry.Chunks, _, err = filer.ResolveChunkManifest(