From d2792c5618355957d1fdbe704bb2c5f6f81f7879 Mon Sep 17 00:00:00 2001 From: "changlin.shi" Date: Thu, 15 Dec 2022 18:39:08 +0800 Subject: [PATCH] clear cache when put bucket Signed-off-by: changlin.shi --- weed/s3api/bucket_metadata.go | 5 +++++ weed/s3api/s3api_bucket_handlers.go | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/weed/s3api/bucket_metadata.go b/weed/s3api/bucket_metadata.go index 412076da3..f4dd4cfe6 100644 --- a/weed/s3api/bucket_metadata.go +++ b/weed/s3api/bucket_metadata.go @@ -232,3 +232,8 @@ func (r *BucketRegistry) unMarkNotFound(bucket string) { defer r.notFoundLock.Unlock() delete(r.notFound, bucket) } + +func (r *BucketRegistry) ClearCache(bucket string) { + r.removeMetadataCache(bucket) + r.unMarkNotFound(bucket) +} diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 515073142..610efcf78 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -153,6 +153,10 @@ func (s3a *S3ApiServer) PutBucketHandler(w http.ResponseWriter, r *http.Request) s3err.WriteErrorResponse(w, r, s3err.ErrInternalError) return } + + // clear cache + s3a.bucketRegistry.ClearCache(bucket) + w.Header().Set("Location", "/"+bucket) writeSuccessResponseEmpty(w, r) }