diff options
Diffstat (limited to 'go/weed')
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers_read.go | 11 | ||||
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers_write.go | 11 |
2 files changed, 13 insertions, 9 deletions
diff --git a/go/weed/weed_server/volume_server_handlers_read.go b/go/weed/weed_server/volume_server_handlers_read.go index 34b0720b9..6b40194ff 100644 --- a/go/weed/weed_server/volume_server_handlers_read.go +++ b/go/weed/weed_server/volume_server_handlers_read.go @@ -114,7 +114,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { w.Header().Set("Content-Encoding", "gzip") } else { - if n.Data, err = storage.UnGzipData(n.Data); err != nil { + if n.Data, err = operation.UnGzipData(n.Data); err != nil { glog.V(0).Infoln("lookup error:", err, r.URL.Path) } } @@ -230,15 +230,8 @@ func (vs *VolumeServer) tryHandleChunkedFile(n *storage.Needle, fileName string, return false } processed = true - if n.IsGzipped(){ - var err error - if n.Data, err = storage.UnGzipData(n.Data); err != nil { - glog.V(0).Infoln("ungzip data error:", err, r.URL.Path) - return false - } - } - chunkManifest, e := operation.LoadChunkedManifest(n.Data) + chunkManifest, e := operation.LoadChunkManifest(n.Data, n.IsGzipped()) if e != nil { glog.V(0).Infoln("load chunked manifest error:", e) return false diff --git a/go/weed/weed_server/volume_server_handlers_write.go b/go/weed/weed_server/volume_server_handlers_write.go index 2f7e79ce9..911ed96fa 100644 --- a/go/weed/weed_server/volume_server_handlers_write.go +++ b/go/weed/weed_server/volume_server_handlers_write.go @@ -66,6 +66,17 @@ func (vs *VolumeServer) DeleteHandler(w http.ResponseWriter, r *http.Request) { glog.V(0).Infoln("delete", r.URL.Path, "with unmaching cookie from ", r.RemoteAddr, "agent", r.UserAgent()) return } + if n.IsChunkedManifest(){ + chunkManifest, e := operation.LoadChunkManifest(n.Data, n.IsGzipped()) + if e != nil { + writeJsonError(w, r, http.StatusInternalServerError, errors.New("Load chunks manifest error: " + e.Error())) + return + } + if e := chunkManifest.DeleteChunks(vs.GetMasterNode()); e != nil { + writeJsonError(w, r, http.StatusInternalServerError, errors.New("Delete chunks error: " + e.Error())) + return + } + } ret := topology.ReplicatedDelete(vs.GetMasterNode(), vs.store, volumeId, n, r) |
