Удаление папок на основе имени даты в s3

#python #amazon-web-services #amazon-s3

Вопрос:

У меня есть папки в корзине s3 с надписью:

 date=2021-07-01/
date=2021-07-02/
...
date=2021-07-26/
 

каждый день в корзину загружается новая папка с соответствующей датой, и я хочу автоматически удалять папки, если им больше x дней. В настоящее время у меня есть это, так что управление жизненным циклом s3 обрабатывает его, но оно удаляет папки на основе даты последнего изменения, и иногда определенные папки нуждаются в обновлении, изменяя дату последнего изменения и вызывая их удаление намного позже, чем заданные x дней.

Есть ли способ сделать это с помощью скрипта python, который запускается ежедневно, чтобы проверить, есть ли какие-либо папки, которые слишком старые, и удалить их соответствующим образом?

Комментарии:

1. Да! Где бы вы хотели запустить сценарий-на вашем собственном компьютере, в экземпляре EC2 или «автоматически в облаке»? Вы пробовали написать сценарий? Дайте нам знать, если у вас возникнут какие-то особые проблемы с этим.

Ответ №1:

Есть ли способ сделать это с помощью скрипта python, который запускается ежедневно, чтобы проверить, есть ли какие-либо папки, которые слишком старые, и удалить их соответствующим образом?

Да, способ есть. Точные детали зависят от того, насколько велика корзина S3, так как для этого требуется перечислить все ее содержимое. Но, позитивно думая о том, что ведро «маленькое» (определение конкретного случая использования), обычным способом было бы:

  1. Создайте лямбда-функцию в python. Функция будет использовать boto3 для запроса списка папок в S3, а также отфильтровывать папки для удаления и удалять их.
  2. Установите правило запланированного события CloudWatch, чтобы запускать функцию каждый день.