diff --git a/restapi/user_objects.go b/restapi/user_objects.go index 02c626ab9..89c4e0fd5 100644 --- a/restapi/user_objects.go +++ b/restapi/user_objects.go @@ -573,12 +573,7 @@ func getDeleteObjectResponse(session *models.Principal, params user_api.DeleteOb if params.AllVersions != nil { allVersions = *params.AllVersions } - minClient, err := newMinioClient(session) - if err != nil { - return prepareError(err) - } - client2 := minioClient{client: minClient} - err = deleteObjects(ctx, mcClient, client2, params.BucketName, prefix, version, rec, allVersions) + err = deleteObjects(ctx, mcClient, params.BucketName, prefix, version, rec, allVersions) if err != nil { return prepareError(err) } @@ -593,11 +588,6 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D if params.AllVersions != nil { allVersions = *params.AllVersions } - minClient, err := newMinioClient(session) - if err != nil { - return prepareError(err) - } - client2 := minioClient{client: minClient} for i := 0; i < len(params.Files); i++ { if params.Files[i].VersionID != "" { version = params.Files[i].VersionID @@ -610,7 +600,7 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D // create a mc S3Client interface implementation // defining the client to be used mcClient := mcClient{client: s3Client} - err = deleteObjects(ctx, mcClient, client2, params.BucketName, params.Files[i].Path, version, params.Files[i].Recursive, allVersions) + err = deleteObjects(ctx, mcClient, params.BucketName, params.Files[i].Path, version, params.Files[i].Recursive, allVersions) if err != nil { return prepareError(err) } @@ -619,22 +609,10 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D } // deleteObjects deletes either a single object or multiple objects based on recursive flag -func deleteObjects(ctx context.Context, client MCClient, client2 MinioClient, bucket string, path string, versionID string, recursive bool, allVersions bool) error { +func deleteObjects(ctx context.Context, client MCClient, bucket string, path string, versionID string, recursive bool, allVersions bool) error { if allVersions { - if recursive { - if err := deleteMultipleObjects(ctx, client, recursive, true); err != nil { - return err - } - } else { - objects, err := listBucketObjects(ctx, client2, bucket, path, recursive, true, false) - if err != nil { - return err - } - for i := range objects { - if err := deleteSingleObject(ctx, client, bucket, path, objects[i].VersionID); err != nil { - return err - } - } + if err := deleteMultipleObjects(ctx, client, recursive, true); err != nil { + return err } } if recursive { diff --git a/restapi/user_objects_test.go b/restapi/user_objects_test.go index 962429407..67ff2d165 100644 --- a/restapi/user_objects_test.go +++ b/restapi/user_objects_test.go @@ -578,7 +578,6 @@ func Test_listObjects(t *testing.T) { func Test_deleteObjects(t *testing.T) { ctx := context.Background() s3Client1 := s3ClientMock{} - minioClient1 := minioClientMock{} type args struct { bucket string path string @@ -696,7 +695,7 @@ func Test_deleteObjects(t *testing.T) { t.Run(tt.test, func(t *testing.T) { mcListMock = tt.args.listFunc mcRemoveMock = tt.args.removeFunc - err := deleteObjects(ctx, s3Client1, minioClient1, tt.args.bucket, tt.args.path, tt.args.versionID, tt.args.recursive, false) + err := deleteObjects(ctx, s3Client1, tt.args.bucket, tt.args.path, tt.args.versionID, tt.args.recursive, false) if err == nil && tt.wantError != nil { t.Errorf("deleteObjects() error: %v, wantErr: %v", err, tt.wantError) } else if err != nil && tt.wantError == nil {