浏览代码

swarm/api/http: fix bzz-hash to return ens resolved hash directly (#19594)

Elad 6 年之前
父节点
当前提交
008d250e3c
共有 1 个文件被更改,包括 11 次插入11 次删除
  1. 11 11
      swarm/api/http/server.go

+ 11 - 11
swarm/api/http/server.go

@@ -669,7 +669,6 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *http.Request) {
 
 	// if path is set, interpret <key> as a manifest and return the
 	// raw entry at the given path
-
 	etag := common.Bytes2Hex(addr)
 	noneMatchEtag := r.Header.Get("If-None-Match")
 	w.Header().Set("ETag", fmt.Sprintf("%q", etag)) // set etag to manifest key or raw entry key.
@@ -680,18 +679,18 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 
-	// check the root chunk exists by retrieving the file's size
-	reader, isEncrypted := s.api.Retrieve(r.Context(), addr)
-	if _, err := reader.Size(r.Context(), nil); err != nil {
-		getFail.Inc(1)
-		respondError(w, r, fmt.Sprintf("root chunk not found %s: %s", addr, err), http.StatusNotFound)
-		return
-	}
-
-	w.Header().Set("X-Decrypted", fmt.Sprintf("%v", isEncrypted))
-
 	switch {
 	case uri.Raw():
+		// check the root chunk exists by retrieving the file's size
+		reader, isEncrypted := s.api.Retrieve(r.Context(), addr)
+		if _, err := reader.Size(r.Context(), nil); err != nil {
+			getFail.Inc(1)
+			respondError(w, r, fmt.Sprintf("root chunk not found %s: %s", addr, err), http.StatusNotFound)
+			return
+		}
+
+		w.Header().Set("X-Decrypted", fmt.Sprintf("%v", isEncrypted))
+
 		// allow the request to overwrite the content type using a query
 		// parameter
 		if typ := r.URL.Query().Get("content_type"); typ != "" {
@@ -703,6 +702,7 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *http.Request) {
 		w.WriteHeader(http.StatusOK)
 		fmt.Fprint(w, addr)
 	}
+
 }
 
 // HandleGetList handles a GET request to bzz-list:/<manifest>/<path> and returns