diff options
| author | jenkins.ow <jenkins@outwardinc.com> | 2018-09-11 12:38:10 -0700 |
|---|---|---|
| committer | jenkins.ow <jenkins@outwardinc.com> | 2018-09-11 12:38:10 -0700 |
| commit | 1690a080b2298ca8427d204994de68fff010e146 (patch) | |
| tree | 28f811a3a8e6ce68fb882fc7f5859011086ebd46 /weed/server | |
| parent | bc025d53055066d20ee6cf02ff4d7a30527831fe (diff) | |
| parent | 267201ff44d58d339ad2c9006ffe1d6d65e569b3 (diff) | |
| download | seaweedfs-1690a080b2298ca8427d204994de68fff010e146.tar.xz seaweedfs-1690a080b2298ca8427d204994de68fff010e146.zip | |
Merge branch 'master' of https://github.com/hans-strudle/seaweedfs
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/filer_server_handlers_read.go | 1 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_write.go | 2 | ||||
| -rw-r--r-- | weed/server/volume_server_handlers_read.go | 7 | ||||
| -rw-r--r-- | weed/server/volume_server_handlers_write.go | 9 |
4 files changed, 13 insertions, 6 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index e17cd776d..eaa8015a6 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -119,6 +119,7 @@ func (fs *FilerServer) handleMultipleChunks(w http.ResponseWriter, r *http.Reque if mimeType != "" { w.Header().Set("Content-Type", mimeType) } + setEtag(w, filer2.ETag(entry.Chunks)) totalSize := int64(filer2.TotalSize(entry.Chunks)) diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 8a19f3fdb..2f9351fa1 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -150,6 +150,7 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request) { return } defer resp.Body.Close() + etag := resp.Header.Get("ETag") resp_body, ra_err := ioutil.ReadAll(resp.Body) if ra_err != nil { glog.V(0).Infoln("failing to upload to volume server", r.RequestURI, ra_err.Error()) @@ -202,6 +203,7 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request) { FileId: fileId, Size: uint64(ret.Size), Mtime: time.Now().UnixNano(), + ETag: etag, }}, } if db_err := fs.filer.CreateEntry(entry); db_err != nil { diff --git a/weed/server/volume_server_handlers_read.go b/weed/server/volume_server_handlers_read.go index 64b90b8e7..4da13883e 100644 --- a/weed/server/volume_server_handlers_read.go +++ b/weed/server/volume_server_handlers_read.go @@ -68,7 +68,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) count, e := vs.store.ReadVolumeNeedle(volumeId, n) glog.V(4).Infoln("read bytes", count, "error", e) if e != nil || count < 0 { - glog.V(0).Infoln("read error:", e, r.URL.Path) + glog.V(0).Infof("read %s error: %v", r.URL.Path, e) w.WriteHeader(http.StatusNotFound) return } @@ -88,12 +88,11 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) } } } - etag := n.Etag() - if inm := r.Header.Get("If-None-Match"); inm == etag { + if inm := r.Header.Get("If-None-Match"); inm == "\""+n.Etag()+"\"" { w.WriteHeader(http.StatusNotModified) return } - w.Header().Set("Etag", etag) + setEtag(w, n.Etag()) if n.HasPairs() { pairMap := make(map[string]string) diff --git a/weed/server/volume_server_handlers_write.go b/weed/server/volume_server_handlers_write.go index d32958339..a0b142dea 100644 --- a/weed/server/volume_server_handlers_write.go +++ b/weed/server/volume_server_handlers_write.go @@ -44,8 +44,7 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) { ret.Name = string(needle.Name) } ret.Size = size - etag := needle.Etag() - w.Header().Set("Etag", etag) + setEtag(w, needle.Etag()) writeJsonQuiet(w, r, httpStatus, ret) } @@ -173,3 +172,9 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques writeJsonQuiet(w, r, http.StatusAccepted, ret) } + +func setEtag(w http.ResponseWriter, etag string) { + if etag != "" { + w.Header().Set("ETag", "\""+etag+"\"") + } +} |
