diff options
| author | Konstantin Lebedev <lebedev_k@tochka.com> | 2021-05-24 19:13:04 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-03-30 21:06:26 +0500 |
| commit | a8b15c676c00e2d65f349e220637cbbf070e6d65 (patch) | |
| tree | 4f30ded225862fd696893a457811942a7418735f | |
| parent | ce8ef60c597ebce86efab7bf50c9a6de8aeea7cf (diff) | |
| download | seaweedfs-a8b15c676c00e2d65f349e220637cbbf070e6d65.tar.xz seaweedfs-a8b15c676c00e2d65f349e220637cbbf070e6d65.zip | |
s3 test bucket delete nonempty
| -rw-r--r-- | weed/s3api/s3api_bucket_handlers.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 3d35e5216..fe6739b35 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -148,6 +148,13 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque } err := s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error { + isEmpty, err := s3a.isDirectoryAllEmpty(client, s3a.option.BucketsPath, bucket) + if err != nil { + return fmt.Errorf("check empty bucket %s: %v", bucket, err) + } + if !isEmpty { + return fmt.Errorf("BucketNotEmpty") + } // delete collection deleteCollectionRequest := &filer_pb.DeleteCollectionRequest{ @@ -162,6 +169,15 @@ func (s3a *S3ApiServer) DeleteBucketHandler(w http.ResponseWriter, r *http.Reque return nil }) + if err != nil { + s3ErrorCode := s3err.ErrInternalError + if err.Error() == "BucketNotEmpty" { + s3ErrorCode = s3err.ErrBucketNotEmpty + } + writeErrorResponse(w, s3ErrorCode, r.URL) + return + } + err = s3a.rm(s3a.option.BucketsPath, bucket, false, true) if err != nil { |
