Merge pull request #1981 from ueni-ltd/if-modified-since
Fix If-Modified-Since behavior
This commit is contained in:
@@ -311,7 +311,7 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des
|
|||||||
}
|
}
|
||||||
defer util.CloseResponse(resp)
|
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" {
|
if r.Method != "DELETE" {
|
||||||
writeErrorResponse(w, s3err.ErrNoSuchKey, r.URL)
|
writeErrorResponse(w, s3err.ErrNoSuchKey, r.URL)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -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))
|
w.Header().Set("Last-Modified", entry.Attr.Mtime.UTC().Format(http.TimeFormat))
|
||||||
if r.Header.Get("If-Modified-Since") != "" {
|
if r.Header.Get("If-Modified-Since") != "" {
|
||||||
if t, parseError := time.Parse(http.TimeFormat, r.Header.Get("If-Modified-Since")); parseError == nil {
|
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)
|
w.WriteHeader(http.StatusNotModified)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user