Following is the example of S3 lifecycle configuration from AWS doc (lifecycle-config-conceptual-ex7).
<LifecycleConfiguration>
<Rule>
...
<Expiration>
<Days>60</Days>
</Expiration>
<NoncurrentVersionExpiration>
<NewerNoncurrentVersions>10</NewerNoncurrentVersions>
<NoncurrentDays>30</NoncurrentDays>
</NoncurrentVersionExpiration>
</Rule>
</LifecycleConfiguration>
In this example, I understood that the Amazon S3 expires current versions 60 days after they are created and the noncurrent versions will be deleted permanently after 30 days retaining 10 objects. So is my following understanding correct?
If I uploaded new object today, it will get expired after 60 days. Amazon S3 will add a delete marker which will become the current version and my object will then become noncurrent version. Now this object will follow rule of NonCurrentVersionExpiration which means it will take 30 more days to get permanently deleted (after keeping first 10 objects).
If my above understanding is correct then is it possible to delete objects after 60 days both current and noncurrent. I want to remove objects after 60 days whether it is current or noncurrent, I don't want current object to first become non-current and then take 30 more days to get deleted.
Some more questions: When will this delete marker get deleted? Will it again take 90 days as this is now current version? What happens if I set a rule to delete expired delete marker?