Если логи Forbidden исходят от Discourse, а не от s3fs при попытке сохранения в бакет Spaces, то, скорее всего, у вас неверные учётные данные или неверное имя бакета.
Ах!
Failed to list backups from S3:
Ага. Я думаю, это и есть проблема. Система пытается получить список бакетов, но не может. Я не совсем уверен, как это исправить, но именно эту проблему нужно решить, так что, возможно, стоит обновить тему. Если вы хотите исправить резервное копирование в S3, вы можете получить помощь здесь; если же вы настраиваете s3fs, вам, скорее всего, потребуется обратиться за помощью в другое место.
Попробуйте добавить эту переменную окружения в ваш app.yml:
FORCE_S3_UPLOADS: 1
Правильно ли указан ваш endpoint? Посмотрите раздел Digital Ocean в статье Использование объектного хранилища для загрузки файлов (S3 и аналоги).