Я часто комбинирую два из методов, уже упомянутых выше.
Для настройки инфраструктуры - Terraform. Этот инструмент всегда опережает конкурентов (Ansible и т. Д.) С точки зрения облачных модулей. Вы можете использовать его для создания группы, политик группы, пользователей, их политик IAM для доступа к корзине, загрузки исходных файлов в корзину и многого другого. Он будет хранить файл состояния, содержащий записи об этих ресурсах, поэтому вы можете использовать тот же рабочий процесс, чтобы уничтожить все, что было создано, если необходимо, с очень небольшими изменениями. Очень легко начать, но не гибко, и вы можете быть пойманным, если изменение области в середине проекта внезапно потребует функции, которой нет. Для начала ознакомьтесь с реестром модуля Terrafrom - https://registry.terraform.io/ . В нем достаточно нескольких модулей S3, чтобы начать работу еще быстрее.
Для взаимодействия с ресурсами aws - Python Boto3. В вашем случае это будет последующая загрузка файлов, удаление в S3 Bucket. Вы можете использовать Boto3 для настройки инфраструктуры - так же, как Terraform, но это потребует больше работы на вашей стороне (например, обработка исключений и ошибок).
При использовании ActiveSupport (т.е. Направляющие), существует метод, добавленный к String
, который делает это:
"String".constantize.new