diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2021-04-12 12:02:54 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-12 12:02:54 -0700 |
| commit | 52200a903b553e65c1f4b3108dca471dd94055ed (patch) | |
| tree | d5c5af69d2fcbd23b4f73133e9e31ab200db8f03 | |
| parent | 519b0e1e4909d875988cee83f8dad5100e3df256 (diff) | |
| parent | f952f979d1cc6a0975d73491d7e6aa5c4e1b522c (diff) | |
| download | seaweedfs-52200a903b553e65c1f4b3108dca471dd94055ed.tar.xz seaweedfs-52200a903b553e65c1f4b3108dca471dd94055ed.zip | |
Merge pull request #1981 from ueni-ltd/if-modified-since
Fix If-Modified-Since behavior
| -rw-r--r-- | weed/s3api/s3api_object_handlers.go | 2 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_read.go | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index b3cfd9ec7..f1a539ac5 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -311,7 +311,7 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des } defer util.CloseResponse(resp) - if resp.ContentLength == -1 || resp.StatusCode == 404 { + if (resp.ContentLength == -1 || resp.StatusCode == 404) && resp.StatusCode != 304 { if r.Method != "DELETE" { writeErrorResponse(w, s3err.ErrNoSuchKey, r.URL) return diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index f90b070a2..cdfdf9b49 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -79,7 +79,7 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request, w.Header().Set("Last-Modified", entry.Attr.Mtime.UTC().Format(http.TimeFormat)) if r.Header.Get("If-Modified-Since") != "" { if t, parseError := time.Parse(http.TimeFormat, r.Header.Get("If-Modified-Since")); parseError == nil { - if t.After(entry.Attr.Mtime) { + if t.After(entry.Attr.Mtime) || t.Equal(entry.Attr.Mtime) { w.WriteHeader(http.StatusNotModified) return } |
