From 0a286153bbc87ac82417e023ace08bee8e1ca403 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 17 Nov 2023 05:29:50 -0800 Subject: [PATCH] remove checking for BucketInfo() peer call for every PUT() (#18464) we already validate if the bucket doesn't exist in RenameData() which can handle this cleanly, instead of making a network call and returning errors. --- cmd/erasure-server-pool.go | 2 +- cmd/object-api-input-checks.go | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/cmd/erasure-server-pool.go b/cmd/erasure-server-pool.go index 0397be813..5b8b3fb22 100644 --- a/cmd/erasure-server-pool.go +++ b/cmd/erasure-server-pool.go @@ -970,7 +970,7 @@ func (z *erasureServerPools) GetObjectInfo(ctx context.Context, bucket, object s // PutObject - writes an object to least used erasure pool. func (z *erasureServerPools) PutObject(ctx context.Context, bucket string, object string, data *PutObjReader, opts ObjectOptions) (ObjectInfo, error) { // Validate put object input args. - if err := checkPutObjectArgs(ctx, bucket, object, z); err != nil { + if err := checkPutObjectArgs(ctx, bucket, object); err != nil { return ObjectInfo{}, err } diff --git a/cmd/object-api-input-checks.go b/cmd/object-api-input-checks.go index d530827d0..a2029bfd9 100644 --- a/cmd/object-api-input-checks.go +++ b/cmd/object-api-input-checks.go @@ -149,7 +149,6 @@ func checkObjectArgs(ctx context.Context, bucket, object string, obj ObjectLayer // This is done on purpose since the order of errors is // important here bucket does not exist error should // happen before we return an error for invalid object name. - // FIXME: should be moved to handler layer. if err := checkBucketExist(ctx, bucket, obj); err != nil { return err } @@ -170,16 +169,7 @@ func checkObjectArgs(ctx context.Context, bucket, object string, obj ObjectLayer } // Checks for PutObject arguments validity, also validates if bucket exists. -func checkPutObjectArgs(ctx context.Context, bucket, object string, obj getBucketInfoI) error { - // Verify if bucket exists before validating object name. - // This is done on purpose since the order of errors is - // important here bucket does not exist error should - // happen before we return an error for invalid object name. - // FIXME: should be moved to handler layer. - if err := checkBucketExist(ctx, bucket, obj); err != nil { - return err - } - +func checkPutObjectArgs(ctx context.Context, bucket, object string) error { if err := checkObjectNameForLengthAndSlash(bucket, object); err != nil { return err }