Прежде чем пытаться ответить на ваш вопрос, позвольте мне прояснить некоторые основы, которые я понимаю:
Представьте себе ваш файл S3, который является версией стека, внутри которого содержится набор файлов с currentversion и 0 или несколько невключение . Всякий раз, когда новое обновление происходит с currentversion , новая версия находится на вершине стека и становится currentversion , тогда как остальные становятся набором noncurrentversion по порядку (так как они ведут себя как стек).
Несмотря на то, что в вашей конфигурации S3 не включено управление версиями, используется та же схема. В этих случаях невозврат устанавливается на 0, а механизм управления версиями отключен.
Учтите, что каждый объект этого «стека» в файле S3 содержит метку времени, установленную в то время, когда объект создается и добавляется в верхнюю часть стека.
На основе первого раздела вашей политики:
"Expiration": {
"Days": 30
}
Каждый раз, когда запускается это правило, оно будет читать метку времени currentversion , и если он старше 30 дней, он будет удален. Это не влияет на не текущих версий объекта. Более того, последний
Источник: AWS - Элементы для описания действий жизненного цикла в корзинах с версиями - Элемент действия с истечением срока действия - Версионная корзина
На основе второго раздела вашей политики :
"NoncurrentVersionExpiration": {
"NoncurrentDays": 30
}
Читая в AWS Документацию правил жизненного цикла, основанную на возрасте объекта . При указании количества дней в действиях NoncurrentVersionTransition и NoncurrentVersionExpiration в конфигурации жизненного цикла обратите внимание на следующее:
Это число дней, когда версия объекта становится не текущей (то есть когда объект перезаписывается или удаляется), что Amazon S3 будет выполнять действие с указанным объектом или объектами.
Всякий раз, когда новая версия помещается на вершину стека. Временная метка будет обновляться в тот момент, когда это действие произошло.
Каждый раз, когда запускается это правило, оно будет считывать метку времени всех не текущих объектов версии в стеке и, если есть, объект старше 30 дней, он будет удален.
Заключение
Будет ли новая версия и старая версия удалены как 10 мая, ИЛИ старая версия будет удалена 30 апреля, так и новая Версия get удалена 10 мая?
Обе версии будут удалены 10 мая (10 апреля + 30 дней). Потому что новая версия будет иметь метку времени, которая начнет отсчитываться с 10 мая, но и старая версия будет удалена в то же время (если больше ничего не произойдет за это время), потому что, когда новая версия создается, метка времени старый тоже обновляется. И то и другое одновременно.
Надеюсь, это поможет. И спасибо за исправления в комментариях ниже.