From 42c6e5251363f0437f22eace84589856ff06f669 Mon Sep 17 00:00:00 2001 From: chrislu Date: Thu, 18 Aug 2022 02:13:58 -0700 Subject: [PATCH] s3: fix regression on HEAD directory operation --- weed/s3api/s3api_object_handlers.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go index f3b34fa4d..5ff98e022 100644 --- a/weed/s3api/s3api_object_handlers.go +++ b/weed/s3api/s3api_object_handlers.go @@ -388,6 +388,18 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des } } + if resp.StatusCode == http.StatusNotFound { + s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey) + return + } + + // when HEAD a directory, it should be reported as no such key + // https://github.com/seaweedfs/seaweedfs/issues/3457 + if resp.ContentLength == -1 && resp.StatusCode != http.StatusNotModified { + s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey) + return + } + responseStatusCode := responseFn(resp, w) s3err.PostLog(r, responseStatusCode, s3err.ErrNone) }