Stop using Amazon s3 for uploads

Не лучше вас, но я только что прошёл этот путь — и справился с помощью @Pravi.

Шаги, которые нужно выполнить, чтобы вернуться от загрузки в S3 к стандартному состоянию

Это не очень просто — будьте предельно внимательны с текстом и ссылками, иначе, если что-то пойдёт не так, наводить порядок будет очень сложно. Но это вполне реально.

Шаг 1 — Скопируйте файлы из вашего S3-бакета в папку public/uploads/default

Сначала установите AWS CLI внутри контейнера приложения:

cd /var/discourse
./launcher enter app
sudo apt install awscli

Настройте AWS, указав ваш S3-идентификатор и пароль (обычно это просто):

aws configure

Затем используйте aws для копирования всего содержимого бакета в public/uploads/default/:

aws s3 sync s3://my-bucket-name/ public/uploads/default/

Шаг 2 — Перенастройте URL S3

Это проще всего сделать, найдя изображение на вашем форуме и проверив его URL. Вам нужна вся часть до самого имени файла (включая последний /):

discourse remap //the-long-url-in-your-images-until-the-filename /uploads/default/

Шаг 3 — Пересоберите посты и перезапустите приложение:

rake posts:rebake
exit
./launcher rebuild app

Шаг 4 — Отключите S3

  1. Отключите загрузки в S3 в настройках (или в вашем app.yml, если вы настраивали его таким образом). Если вы использовали CDN, то также удалите ссылку на него из настроек (иначе отключение не сработает по-настоящему).
  2. Выключите ваш контейнер. Я сделал это, переместив содержимое в новый контейнер в качестве резервной копии на начальном этапе.

Уф! Готово. Пока что я не столкнулся ни с какими проблемами. Идите и проверьте!