diff options
| author | Konstantin Lebedev <lebedev_k@tochka.com> | 2021-05-24 16:59:44 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <lebedev_k@tochka.com> | 2021-05-24 16:59:44 +0500 |
| commit | b612d5aebdb55767c2ac2afffedc96c2a27fd9db (patch) | |
| tree | 61c41ad2627d51ef5544b9a80dfb223e87344567 /weed/server/filer_server_handlers_read.go | |
| parent | 9079ce0e7f9eebd10b33cbe27f030a6f4f584d04 (diff) | |
| download | seaweedfs-b612d5aebdb55767c2ac2afffedc96c2a27fd9db.tar.xz seaweedfs-b612d5aebdb55767c2ac2afffedc96c2a27fd9db.zip | |
s3 test get w/ If-Match: bogus ETag
Diffstat (limited to 'weed/server/filer_server_handlers_read.go')
| -rw-r--r-- | weed/server/filer_server_handlers_read.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index 286523098..ea0650ed8 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -61,6 +61,13 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, return } + // set etag + etag := filer.ETagEntry(entry) + if ifm := r.Header.Get("If-Match"); ifm != "" && ifm != "\""+etag+"\"" { + w.WriteHeader(http.StatusPreconditionFailed) + return + } + w.Header().Set("Accept-Ranges", "bytes") // mime type @@ -115,8 +122,6 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, } } - // set etag - etag := filer.ETagEntry(entry) if inm := r.Header.Get("If-None-Match"); inm == "\""+etag+"\"" { w.WriteHeader(http.StatusNotModified) return |
