diff options
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/filer_server.go | 5 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_read.go | 4 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_read_dir.go | 6 |
3 files changed, 13 insertions, 2 deletions
diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go index a04fd1910..9428c2edf 100644 --- a/weed/server/filer_server.go +++ b/weed/server/filer_server.go @@ -72,6 +72,7 @@ type FilerOption struct { DownloadMaxBytesPs int64 DiskType string AllowedOrigins []string + ExposeDirectoryData bool } type FilerServer struct { @@ -115,6 +116,10 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption) domains := strings.Split(allowedOrigins, ",") option.AllowedOrigins = domains + v.SetDefault("filer.expose_directory_metadata.enabled", true) + returnDirMetadata := v.GetBool("filer.expose_directory_metadata.enabled") + option.ExposeDirectoryData = returnDirMetadata + fs = &FilerServer{ option: option, grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.filer"), diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index d1cd3beae..0f4037237 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -117,7 +117,7 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) w.WriteHeader(http.StatusForbidden) return } - if query.Get("metadata") == "true" { + if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false { writeJsonQuiet(w, r, http.StatusOK, entry) return } @@ -135,7 +135,7 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) return } - if query.Get("metadata") == "true" { + if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false { if query.Get("resolveManifest") == "true" { if entry.Chunks, _, err = filer.ResolveChunkManifest( fs.filer.MasterClient.GetLookupFileIdFunction(), diff --git a/weed/server/filer_server_handlers_read_dir.go b/weed/server/filer_server_handlers_read_dir.go index 2060e3374..be38fba1d 100644 --- a/weed/server/filer_server_handlers_read_dir.go +++ b/weed/server/filer_server_handlers_read_dir.go @@ -18,6 +18,11 @@ import ( // is empty. func (fs *FilerServer) listDirectoryHandler(w http.ResponseWriter, r *http.Request) { + if fs.option.ExposeDirectoryData == false { + http.NotFound(w, r) + return + } + stats.FilerHandlerCounter.WithLabelValues(stats.DirList).Inc() path := r.URL.Path @@ -95,4 +100,5 @@ func (fs *FilerServer) listDirectoryHandler(w http.ResponseWriter, r *http.Reque if err != nil { glog.V(0).Infof("Template Execute Error: %v", err) } + } |
