From 2afb5a13af66e78bafe794ee30f2ea0b5fb9342b Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Thu, 28 Oct 2021 18:30:33 +0500 Subject: [PATCH 1/2] fix DeleteBucketLifecycleConfiguration --- weed/s3api/s3api_server.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/weed/s3api/s3api_server.go b/weed/s3api/s3api_server.go index ee961bf3b..1f948a9cb 100644 --- a/weed/s3api/s3api_server.go +++ b/weed/s3api/s3api_server.go @@ -103,13 +103,9 @@ func (s3a *S3ApiServer) registerRouter(router *mux.Router) { bucket.Methods("PUT").Path("/{object:.+}").HeadersRegexp("X-Amz-Copy-Source", ".*?(\\/|%2F).*?").HandlerFunc(track(s3a.iam.Auth(s3a.CopyObjectHandler, ACTION_WRITE), "COPY")) // PutObject bucket.Methods("PUT").Path("/{object:.+}").HandlerFunc(track(s3a.iam.Auth(s3a.PutObjectHandler, ACTION_WRITE), "PUT")) - // PutBucket - bucket.Methods("PUT").HandlerFunc(track(s3a.iam.Auth(s3a.PutBucketHandler, ACTION_ADMIN), "PUT")) // DeleteObject bucket.Methods("DELETE").Path("/{object:.+}").HandlerFunc(track(s3a.iam.Auth(s3a.DeleteObjectHandler, ACTION_WRITE), "DELETE")) - // DeleteBucket - bucket.Methods("DELETE").HandlerFunc(track(s3a.iam.Auth(s3a.DeleteBucketHandler, ACTION_WRITE), "DELETE")) // ListObjectsV2 bucket.Methods("GET").HandlerFunc(track(s3a.iam.Auth(s3a.ListObjectsV2Handler, ACTION_LIST), "LIST")).Queries("list-type", "2") @@ -139,6 +135,13 @@ func (s3a *S3ApiServer) registerRouter(router *mux.Router) { // ListObjectsV1 (Legacy) bucket.Methods("GET").HandlerFunc(track(s3a.iam.Auth(s3a.ListObjectsV1Handler, ACTION_LIST), "LIST")) + + // PutBucket + bucket.Methods("PUT").HandlerFunc(track(s3a.iam.Auth(s3a.PutBucketHandler, ACTION_ADMIN), "PUT")) + + // DeleteBucket + bucket.Methods("DELETE").HandlerFunc(track(s3a.iam.Auth(s3a.DeleteBucketHandler, ACTION_WRITE), "DELETE")) + /* // not implemented From dc3ae5e8a624104ea7ad119e4575aadf852a8205 Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Thu, 28 Oct 2021 19:34:37 +0500 Subject: [PATCH 2/2] DeleteBucketLifecycleConfiguration return 204 --- weed/s3api/s3api_bucket_handlers.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index b75012e9d..c45210b92 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -268,6 +268,7 @@ func (s3a *S3ApiServer) GetBucketLifecycleConfigurationHandler(w http.ResponseWr ttls := fc.GetCollectionTtls(bucket) if len(ttls) == 0 { s3err.WriteErrorResponse(w, s3err.ErrNoSuchLifecycleConfiguration, r) + return } response := Lifecycle{} for prefix, internalTtl := range ttls { @@ -299,6 +300,6 @@ func (s3a *S3ApiServer) PutBucketLifecycleConfigurationHandler(w http.ResponseWr // https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html func (s3a *S3ApiServer) DeleteBucketLifecycleHandler(w http.ResponseWriter, r *http.Request) { - s3err.WriteErrorResponse(w, s3err.ErrNotImplemented, r) + s3err.WriteEmptyResponse(w, http.StatusNoContent) }