aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2013-03-20 22:57:41 -0700
committerChris Lu <chris.lu@gmail.com>2013-03-20 22:57:41 -0700
commit4d8ce2fe26781b070a96f5fa5c6e4906c28016ee (patch)
treeaec91e8be4aa971defa9d0732476ad82f16fc1e4 /go
parent437532d559489538afffee7e871f95fd6f6cf96f (diff)
downloadseaweedfs-4d8ce2fe26781b070a96f5fa5c6e4906c28016ee.tar.xz
seaweedfs-4d8ce2fe26781b070a96f5fa5c6e4906c28016ee.zip
adding HEAD support
Diffstat (limited to 'go')
-rw-r--r--go/weed/volume.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/go/weed/volume.go b/go/weed/volume.go
index fd2298541..4e26052ce 100644
--- a/go/weed/volume.go
+++ b/go/weed/volume.go
@@ -89,14 +89,16 @@ func vacuumVolumeCommitHandler(w http.ResponseWriter, r *http.Request) {
func storeHandler(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
- GetHandler(w, r)
+ GetOrHeadHandler(w, r, true)
+ case "HEAD":
+ GetOrHeadHandler(w, r, false)
case "DELETE":
DeleteHandler(w, r)
case "POST":
PostHandler(w, r)
}
}
-func GetHandler(w http.ResponseWriter, r *http.Request) {
+func GetOrHeadHandler(w http.ResponseWriter, r *http.Request, isGetMethod bool) {
n := new(storage.Needle)
vid, fid, ext := parseURLPath(r.URL.Path)
volumeId, err := storage.NewVolumeId(vid)
@@ -163,8 +165,10 @@ func GetHandler(w http.ResponseWriter, r *http.Request) {
}
}
w.Header().Set("Content-Length", strconv.Itoa(len(n.Data)))
- if _, e = w.Write(n.Data); e != nil {
- debug("response write error:", e)
+ if isGetMethod {
+ if _, e = w.Write(n.Data); e != nil {
+ debug("response write error:", e)
+ }
}
}
func PostHandler(w http.ResponseWriter, r *http.Request) {