Я ненавижу размытые вопросы. Что вы имели в виду, когда спрашивали про «это»?
Вот мои текущие настройки:
Настройка Discourse:
- Стандартная установка в одном контейнере
- Настроено как поддомен: forums.domain.tld
- Стандартная настройка S3 для загрузок
- Загрузки сохраняются в S3
Настройка S3:
- Ведро S3 от Digital Ocean
- Ведро включено для внешнего доступа
- Никаких других уровней безопасности или разрешений
Настройка CDN:
- bunny CDN
- Настроены разрешённые рефереры: domain.tld и *.domain.tld
- Переключатель, который заблокировал доступ к аватарам, назывался «Блокировать прямой доступ к файлам по URL».
Когда он включён, все аватары возвращают ошибку 403. Когда выключен — аватары отображаются.
Изображения, не являющиеся аватарами:
- URL в Discourse:
https://cdn.domain.tld/optimized/3X/3/1/filename_#_size.jpeg
Изображения аватаров:
- URL в Discourse:
https://forums.domain.tld/user_avatar/forums.domain.tld/mazzini/48/776_2.png
В предыдущем посте Как хранятся и доступны аватары? указывается, что Discourse использует прокси для аватаров. Следовательно, структура URL для аватаров не является стандартной структурой URL изображений.
В моей системе аватары доступны либо из S3, либо из CDN. Это означает, что где-то и каким-то образом URL аватара преобразуется в URL CDN.
Когда это происходит, CDN считает URL прямой ссылкой и блокирует доступ с ошибкой 403.
Надеюсь, я ответил на вопрос про «это»?