К вашему сведению, уже есть нативная поддержка загрузки файлов в хранилище S3 — вам просто нужно включить эту опцию:

Таким образом, текущий интерфейс сообщений уже поддерживает эту функцию.
Возможно, вы сможете использовать её, если вам потребуются дополнительные настройки, что значительно упростит ваш проект.
Смотрите: Configure an S3 compatible object storage provider for uploads