Как я могу автоматически удалить AWS S3 файлы, используя python? - PullRequest
0 голосов
/ 28 января 2020

Я хочу удалить некоторые файлы из S3 через определенное время. Мне нужно установить ограничение по времени для каждого объекта, а не для ведра. это возможно?

Я использую boto3 для загрузки файла в S3.

region = "us-east-2"
    bucket = os.environ["S3_BUCKET_NAME"]
    credentials = {
    'aws_access_key_id': os.environ["AWS_ACCESS_KEY"],
    'aws_secret_access_key': os.environ["AWS_ACCESS_SECRET_KEY"]
        }
    client = boto3.client('s3', **credentials)
    transfer = S3Transfer(client)

    transfer.upload_file(file_name, bucket, folder+file_name,
                         extra_args={'ACL': 'public-read'})

Выше приведен код, который я использовал для загрузки объекта.

1 Ответ

1 голос
/ 28 января 2020

У вас есть много вариантов здесь. Некоторые идеи:

  • Вы можете автоматически удалять файлы за определенный период времени, используя Управление жизненным циклом объектов Amazon S3 . См .: Как создать политику жизненного цикла для корзины S3?
  • Если ваши требования более подробны (например, разные файлы после разных периодов времени), вы можете добавить Отметьте для каждого объекта, указав, когда вы хотите удалить объект или через сколько дней он должен быть удален. Затем вы можете определить правило Amazon CloudWatch Events для запуска AWS лямбда-функции через регулярные периоды (например, один раз в день или один раз в час). Затем вы можете кодировать функцию Lambda для просмотра тегов на объектах, определения необходимости их удаления и удаления нужных объектов. Вы найдете примеры этого на Inte rnet, часто называемом Stopinator .
  • Если у вас есть экземпляр Amazon EC2 , который все время выполняется для другой работы, затем вы можете просто создать задание cron или запланированное задание для запуска аналогичной программы (без использования AWS Lambda).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...