Versioning is not suitable in my case because if the user wants to delete anything in storage it would be deleted permanently not soft-deleted but for the backup purpose, I have to use Cross-Region Replication and to use CRR I need to enable Versioning.
I tried to delete those object which has Delete-marker as the current version and non-current version as a soft deleted object. here is my life cycle rule policy. No Transitions, No current version expiration.
Only applied the Previous version permanently delete so that it considers delete marker as the current version and soft-deleted object as the previous version and delete it permanently BUT I DON'T KNOW IT IS NOT WORKING...!
If you have only just enabled it, it might still be queuing objects that need to be deleted.
Lifecycle policies do not delete exactly after this marker, in fact actions are queued and processed later on.
Sometimes when you first configure it can be slightly delayed (because it has not queued anything) so I would suggest checking back in a couple of days when this process should now have happened.
More information is available in the Understanding object expiration documentation.