From 4d4acc715e517ae8f7cdaed220908dbd8e0b7773 Mon Sep 17 00:00:00 2001 From: Merlin Gaillard Date: Fri, 9 Apr 2021 12:13:19 +0200 Subject: [PATCH 1/2] s3api: handle 304 response code from filer --- weed/s3api/s3api_object_handlers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From f952f979d1cc6a0975d73491d7e6aa5c4e1b522c Mon Sep 17 00:00:00 2001 From: Merlin Gaillard Date: Fri, 9 Apr 2021 15:04:17 +0200 Subject: [PATCH 2/2] filer: return 304 when If-Modified-Since == Last-Modified --- weed/server/filer_server_handlers_read.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 }