Let's understand what is non current version and current version?
Whenever versioned bucket object is deleted current object version becomes noncurrent, and the delete marker becomes the current version.
what is expired delete marker?
A delete marker with zero noncurrent versions is referred to as an expired object delete marker.
So option 4 and 5 will solve your purpose
- option 4 will permananelty delete non current objects, which will make delete marker as expired since there will no non current version
- option 5 will delete expired delete markers
Note: Lifecycle rule policies takes time to take effect as objects are queued and it happens in an asynchronous manner.