Вот что в итоге сработало:
Эти настройки должны быть в файле конфигурации app.yml, чтобы rake-задачи выполнялись корректно. Когда они находились только в разделе /admin/site_settings/, rake-задачи не работали правильно. Я получал ошибку:
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
Настройки взяты отсюда… Configure an S3 compatible object storage provider for uploads
Конкретно я использовал стандартные настройки Spaces с двумя пробелами перед каждой строкой. …
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://nyc3.cdn.digitaloceanspaces.com
DISCOURSE_S3_BUCKET: my-files
DISCOURSE_S3_BACKUP_BUCKET: my-files/my-backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
ПРИМЕЧАНИЕ: Значение DISCOURSE_S3_REGION должно быть буквально «whatever» и не должно выглядеть как реальный регион S3 (например, us-west-1).
Также эти настройки в секции hooks раздела ## Plugins go here…
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
Именно здесь я столкнулся с проблемой в прошлый раз. Как только это было добавлено и я пересобрал приложение, при попытке открыть наш форум в браузере появлялся экран загрузки.
Это происходило только потому, что система искала ассеты, которые ещё не были обновлены. Пришло время запустить rake-задачи изнутри приложения…
./launcher enter app
rake s3:upload_assets
После выполнения этой задачи количество элементов увеличилось, и в нашем бакете появилась папка «assets»…
Затем форум начал загружаться корректно. Вот единственные настройки, связанные с S3, которые отображаются в моём разделе /admin/site-settings…
Я выполнил следующую команду для загрузки всех файлов, и она обновила URL с старого пути на новый (без CDN).
rake uploads:migrate_to_s3 --trace
После завершения количество элементов более чем утроилось.
Единственное, что я заметил: пути к изображениям в старых постах использовали URL S3 ENDPOINT, тогда как в новых постах — URL S3 CDN.
https:/my-storage.sfo3.digitaloceanspaces.com/
против
https:/my-storage.sfo3.cdn.digitaloceanspaces.com/
Меня это не особо беспокоило, поскольку всё уже использовало S3.
Но я попытался запустить…
rake posts:rebake

Процесс остановился из-за нехватки памяти. Я попробовал запустить вместо этого…
rake posts:rebake_uncooked_posts
Он несколько раз исчерпывал память и перезапускался, затем снова не хватало памяти. Я запустил его снова. В конце концов он обработал все посты.
После полного выполнения до 100% все ссылки наконец использовали путь S3 CDN, как в старых, так и в новых постах. Более 34062 элементов при объёме хранилища 65,9 ГБ (резервная копия <9 ГБ).
Очень рад, что теперь всё работает через S3, включая резервные копии. Кстати, наверное, самое время сделать резервную копию!
Надеюсь, это кому-то поможет.
Удачи!