Я попытался загрузить пользовательский аватар. Загрузка прошла успешно, но при запросе к https://example.com/user_avatar/example.com/example_user/96/11_2.png возвращается ошибка 500. У аватара по умолчанию для анонимных пользователей такой ошибки нет.
Используется последняя ветка master Discourse.
В качестве хранилища S3 используется Cloudflare R2.
В любом случае, одной ошибки 500 недостаточно для диагностики. Пожалуйста, предоставьте соответствующую информацию из логов, и кто-нибудь, возможно, сможет вам помочь.
Конечно. Кстати, я использовал Cloudflare R2 (совместимый с S3) для хранения загружаемого контента. Когда я проверил файлы в бакете, файл аватара действительно там был, но клиенты не могли получить к нему доступ по адресу https://example.com/user_avatar/example.com/example_user/96/11_2.png. Это очень странно.
@avidseeker
Когда вы используете сервис OSS, а ваш сервер не может получить к нему доступ (например, вы находитесь в Китае, и местный провайдер блокирует соединения вашего сервера с Cloudflare R2), то при попытке клиентов получить ресурсы кастомных аватаров ваш сервер должен загрузить их из OSS. Если это не удаётся, сервер возвращает клиентам ошибку 500.
В моём случае я установил две переменные окружения: HTTP_PROXY и HTTPS_PROXY, указав на прокси-сервер, который имеет доступ к вашему сервису OSS. Если вы установили Discourse стандартным способом, в файле app.xml должен быть раздел env; добавьте туда эти две переменные, после чего можно запустить приложение. Я использовал нестандартную установку и управлял Discourse через Systemd, поэтому добавил два параметра Environment в файл .service.
Не знаю, есть ли в вашей стране система интернет-цензуры. Если да, то, скорее всего, вы уже знаете, что делать. Если нет, проверьте статус работы вашего сервиса OSS и настройки, связанные с S3.