aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2020-11-13 01:58:06 -0800
committerGitHub <noreply@github.com>2020-11-13 01:58:06 -0800
commitb3f22a53b0f35d19200aa51dea866311f2199d0e (patch)
tree605b3a761c9a74a86a6600d75c56b683582ebdf3
parenta2962604ad0bf83b26c692c72ddd40e648fb804d (diff)
parenta9990a1dc65dfcfe9e08fdbcc698bab7e9dfca90 (diff)
downloadseaweedfs-b3f22a53b0f35d19200aa51dea866311f2199d0e.tar.xz
seaweedfs-b3f22a53b0f35d19200aa51dea866311f2199d0e.zip
Merge pull request #1616 from taozix/master
adjust check bucket.
-rw-r--r--weed/s3api/s3api_bucket_handlers.go32
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
+}