aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2021-04-12 12:02:54 -0700
committerGitHub <noreply@github.com>2021-04-12 12:02:54 -0700
commit52200a903b553e65c1f4b3108dca471dd94055ed (patch)
treed5c5af69d2fcbd23b4f73133e9e31ab200db8f03
parent519b0e1e4909d875988cee83f8dad5100e3df256 (diff)
parentf952f979d1cc6a0975d73491d7e6aa5c4e1b522c (diff)
downloadseaweedfs-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.go2
-rw-r--r--weed/server/filer_server_handlers_read.go2
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
}