После изменения настройки s3_region в Discourse с значения по умолчанию us-east-1 на us-west-2, новые изображения успешно загружались в S3, однако Discourse пытался ссылаться на них по прежнему адресу региона us-east-1, из-за чего все вновь загруженные изображения переставали отображаться.
Пример для новых изображений…
Ожидается: my-bucket.s3.dualstack.us-west-2.amazonaws.com/original/1X/xyz.png
Фактически: my-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/xyz.png
Обходное решение Выполнение команды discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com заставило систему использовать правильный регион s3_region для новых изображений (а также, как и ожидалось, исправило ссылки на ранее загруженные изображения).
Странно, что проблема проявлялась непостоянно. Возможно, это сработало и для ранее загруженных изображений. Я не уверен.
Большинство пользователей, вероятно, всё равно выполняют remap при изменении этой настройки. В моём случае я настраивал новый форум. Я просто изменил настройку в одну сторону, а затем в другую, из-за чего все загрузки изображений перестали работать.
Я подтвердил это поведение на последнем коммите ветки main вчера (коммит: 967946378).
Связанные проблемы / обсуждения
Несколько заметок для тех, кто столкнётся с этим позже (включая меня):
Я запускаю Discourse с помощью установщика Digital Ocean. Чтобы выполнить remap или другие скрипты Discourse:
- подключитесь к серверу по SSH
- перейдите в директорию
cd /var/discourse - войдите в контейнер, выполнив
./launcher enter app - перейдите в директорию
cd /var/www/discourse - выполните
discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com(отсюда также можно запускать другие скрипты Discourse)
Вот как запускать rake-скрипты или скрипты Discourse на установках Bitnami.