diff options
| author | ruitao.liu <ruitao.liu@cloudminds.com> | 2020-11-13 17:13:20 +0800 |
|---|---|---|
| committer | ruitao.liu <ruitao.liu@cloudminds.com> | 2020-11-13 17:13:20 +0800 |
| commit | a9990a1dc65dfcfe9e08fdbcc698bab7e9dfca90 (patch) | |
| tree | beffa7a7db9c6f76a87775a069bcfa69a9091cf4 | |
| parent | e6333da65ad6774d8c945bc29f686386e0515385 (diff) | |
| download | seaweedfs-a9990a1dc65dfcfe9e08fdbcc698bab7e9dfca90.tar.xz seaweedfs-a9990a1dc65dfcfe9e08fdbcc698bab7e9dfca90.zip | |
adjust check bucket if exist or has access.
| -rw-r--r-- | weed/s3api/s3api_bucket_handlers.go | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index fe33cfe78..00b7382cc 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -118,18 +118,12 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque bucket, _ := getBucketAndObject(r) - entry, err := s3a.getEntry(s3a.option.BucketsPath, bucket) - if entry == nil || err == filer_pb.ErrNotFound { - writeErrorResponse(w, s3err.ErrNoSuchBucket, r.URL) + if err := s3a.checkBucket(r, bucket); err != s3err.ErrNone { + writeErrorResponse(w, err, r.URL) return } - if !s3a.hasAccess(r, entry) { - writeErrorResponse(w, s3err.ErrAccessDenied, r.URL) - return - } - - err = s3a.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { + err := s3a.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { // delete collection deleteCollectionRequest := &filer_pb.DeleteCollectionRequest{ @@ -158,18 +152,24 @@ func (s3a *S3ApiServer) HeadBucketHandler(w http.ResponseWriter, r *http.Request bucket, _ := getBucketAndObject(r) + if err := s3a.checkBucket(r, bucket); err != s3err.ErrNone { + writeErrorResponse(w, err, r.URL) + return + } + + writeSuccessResponseEmpty(w) +} + +func (s3a *S3ApiServer) checkBucket(r *http.Request, bucket string) s3err.ErrorCode { entry, err := s3a.getEntry(s3a.option.BucketsPath, bucket) if entry == nil || err == filer_pb.ErrNotFound { - writeErrorResponse(w, s3err.ErrNoSuchBucket, r.URL) - return + return s3err.ErrNoSuchBucket } if !s3a.hasAccess(r, entry) { - writeErrorResponse(w, s3err.ErrAccessDenied, r.URL) - return + return s3err.ErrAccessDenied } - - writeSuccessResponseEmpty(w) + return s3err.ErrNone } func (s3a *S3ApiServer) hasAccess(r *http.Request, entry *filer_pb.Entry) bool { @@ -188,4 +188,4 @@ func (s3a *S3ApiServer) hasAccess(r *http.Request, entry *filer_pb.Entry) bool { } } return true -}
\ No newline at end of file +} |
