Удалить объект S3 после присвоения тега - PullRequest
0 голосов
/ 28 мая 2019

Я хочу удалить объект AWS S3 через 30 дней после присвоения тега.Кажется, это легко, когда я помечаю новый файл во время создания, но что, если файл был создан более 30 дней назад, и я все еще хочу соответствовать политике хранения (30 дней) и не удалять его слишком рано.

Я надеялся, что смогу использовать политику жизненного цикла транзакции для Glacier, а затем удалить файл, но также на основе даты создания.

Есть ли другой вариант без использования лямбды?

{
    "Rules": [
        {
            "Status": "Enabled", 
            "NoncurrentVersionExpiration": {
                "NoncurrentDays": 31
            }, 
            "NoncurrentVersionTransitions": [
                {
                    "NoncurrentDays": 1, 
                    "StorageClass": "GLACIER"
                }
            ], 
            "Filter": {
                "Tag": {
                    "Value": "true", 
                    "Key": "toDelete"
                }
            }, 
            "Expiration": {
                "Days": 31
            }, 
            "Transitions": [
                {
                    "Days": 1, 
                    "StorageClass": "GLACIER"
                }
            ], 
            "ID": "delete-tagged-toDelete-after-31days"
        }
    ]
}

1 Ответ

0 голосов
/ 29 мая 2019

Не существует готового решения для того, что вы хотите сделать.

Правила жизненного цикла Amazon S3 основаны на Дата создания . Добавление тега к объекту недостаточно для «сброса часов» для правила жизненного цикла.

Некоторые идеи:

  • Вы можете быть в состоянии скопировать объект в себя и добавить тег. Это может быть дата создания на объекте.
  • Вы можете создать Лямбда-функцию AWS , запускаемую по регулярному расписанию по правилу событий Amazon CloudWatch, которая сканирует корзину для объектов и удаляет их на основе тега. Тег может содержать дату удаления, которую использует лямбда-функция, чтобы определить, прошла ли дата удаления.
...