Все изображения сломались после смены домена и пересборки постов
Сейчас эта проблема отсутствует у новых постов, только у старых.
Мы используем S3.
Вы следовали инструкции Change the domain name or rename your Discourse?
Изменяли ли вы что-либо в конфигурации S3? Менялись ли при этом доменные имена? Это уже совершенно другая проблема.
Затем вам нужно перенастроить базу данных, чтобы загруженные файлы содержали новый URL.
Работают ли новые загрузки?
Да, все новые загрузки работают.
Проблема возникает только для старых вложений.
Я также просмотрел дамп базы данных в формате SQL.
Для таблицы uploads всё ещё используется значение:
//com-ossez-www-discourse.s3.dualstack.us-east-2.amazonaws.com/discourse-uploads/original/2X/e/e7ace3e99f6d7dd9520bebfe4f2de91898a05849.png
Это связано с тем, что я изменил имя бакета.
Это значение должно выглядеть так:
//com-isharkfly-www-discourse.s3.dualstack.us-east-2.amazonaws.com/discourse-uploads/original/2X/e/e7ace3e99f6d7dd9520bebfe4f2de91898a05849.png
Я думаю, я нашел причину и всё исправил на нашем сайте.
Все шаги для китайской версии см. в нашем журнале исправлений: 不是很严重,但是也有点严重的问题 —— 附件无法显示 - Discourse - iSharkFly
Основная причина заключалась в таблице загрузок.
Мы не знаем, почему строки этой таблицы были повреждены: около 60% данных в этой таблице потеряны. Нам пришлось использовать нашу локальную резервную копию, конвертировать данные в SQL и выполнить их в продакшн-среде, чтобы восстановить все потерянные записи.
После этого пересборка постов (rebake post) исправит все проблемы.
Это не проблема исходного кода; кодирование и декодирование base62 работали корректно.
Спасибо, команда.
CC: @pfaffman