aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2022-03-07 00:05:46 -0800
committerGitHub <noreply@github.com>2022-03-07 00:05:46 -0800
commit1e7fcef5816404371c52253110dfaeb00b9f0cbd (patch)
tree1ef9e5a98d788888b7e4a026a10d5eea16695dcf
parentbb0b7845449cfbd81c24dcded266ef861936fe5a (diff)
parentbfcc9ca808ebee6997d9def960655bd5f3773a99 (diff)
downloadseaweedfs-1e7fcef5816404371c52253110dfaeb00b9f0cbd.tar.xz
seaweedfs-1e7fcef5816404371c52253110dfaeb00b9f0cbd.zip
Merge pull request #2729 from banjiaojuhao/filer_metadata-resolve-manifest
filer: support get metadata with resolved manifest chunk
-rw-r--r--weed/server/filer_server_handlers_read.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go
index 431eea979..17a6b3049 100644
--- a/weed/server/filer_server_handlers_read.go
+++ b/weed/server/filer_server_handlers_read.go
@@ -119,7 +119,16 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
return
}
- if r.URL.Query().Has("metadata") {
+ query := r.URL.Query()
+ if query.Get("metadata") == "true" {
+ if query.Get("resolveManifest") == "true" {
+ if entry.Chunks, _, err = filer.ResolveChunkManifest(
+ fs.filer.MasterClient.GetLookupFileIdFunction(),
+ entry.Chunks, 0, int64(entry.Size())); err != nil {
+ err = fmt.Errorf("failed to resolve chunk manifest, err: %s", err.Error())
+ writeJsonError(w, r, http.StatusInternalServerError, err)
+ }
+ }
writeJsonQuiet(w, r, http.StatusOK, entry)
return
}