aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruitao.liu <ruitao.liu@cloudminds.com>2020-11-12 16:44:16 +0800
committerruitao.liu <ruitao.liu@cloudminds.com>2020-11-12 16:44:16 +0800
commitab966410d2a180344d0275354aeac5c599bb7c66 (patch)
tree3b4d2ce6273f5f1b3d3f16c6aac86ac818eb9c4b
parente06676f007934ef20ae1429a097137a9b0466425 (diff)
downloadseaweedfs-ab966410d2a180344d0275354aeac5c599bb7c66.tar.xz
seaweedfs-ab966410d2a180344d0275354aeac5c599bb7c66.zip
return NoSuchBucket instead of InternalError delete non-existed bucket.
-rw-r--r--weed/s3api/s3api_bucket_handlers.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go
index 744f22617..1e6d710be 100644
--- a/weed/s3api/s3api_bucket_handlers.go
+++ b/weed/s3api/s3api_bucket_handlers.go
@@ -120,16 +120,19 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque
bucket, _ := getBucketAndObject(r)
- if entry, err := s3a.get(s3a.option.BucketsPath, bucket); entry != nil && err == nil {
- if id, ok := entry.Extended[xhttp.AmzIdentityId]; ok {
- if string(id) != r.Header.Get(xhttp.AmzIdentityId) {
- writeErrorResponse(w, s3err.ErrAccessDenied, r.URL)
- return
- }
+ entry, err := s3a.get(s3a.option.BucketsPath, bucket)
+ if entry == nil || err == filer_pb.ErrNotFound {
+ writeErrorResponse(w, s3err.ErrNoSuchBucket, r.URL)
+ return
+ }
+ if id, ok := entry.Extended[xhttp.AmzIdentityId]; ok {
+ if string(id) != r.Header.Get(xhttp.AmzIdentityId) {
+ 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{