네, DISCOURSE_REDIRECT_AVATAR_REQUESTS=true 환경 변수를 설정하여 활성화할 수 있는 GlobalSetting이 있습니다.
이 설정을 적용하면 아바타 요청이 프록시를 거치지 않고 파일 스토어로의 302 리다이렉트로 처리됩니다.
단독으로 사용하긴… 사실 좋은 아이디어는 아닙니다. 이렇게 하면 브라우저가 각 아바타마다 두 번의 완전한 HTTP 왕복 통신을 수행해야 합니다. 즉, ‘핫링크 방지’ 문제를 해결할 수는 있겠지만… 활성화하는 것을 권장하지 않습니다. 사용자 경험만 더 나빠질 뿐입니다.
저희는 discourse.org 호스팅에서 이 설정을 사용하고 있습니다. 하지만 Cloudfront CDN에서 실행되는 람다(Lambda) 함수로 이를 보완하고 있습니다. 이 람다 함수가 302 응답을 감지하고 직접 프록싱을 수행합니다. 즉, 프록싱을 애플리케이션 서버에서 CDN으로 이동시킨 것입니다.
"아바타를 자산(asset)으로 직접 링크하도록 변경할 수 있는가"라는 더 일반적인 질문에는, 아바타 URL이 모든 과거 게시물(예: 인용문)에 고정되어 있어 상황이 복잡합니다. 동적인 /user-avatar/ URL 덕분에 사용자가 아바타를 변경해도 기존 링크가 계속 작동하도록 유지할 수 있습니다. 이 시스템을 변경할 계획은 없습니다.
기존 프록싱이 사용자의 사용 사례에 맞게 작동하도록 하는 쉽고 리스크가 낮은 방법(예: 아바타 프록시 요청에 특정 HTTP 헤더를 삽입하는 GlobalSetting 추가)이 있다면, 해당 변경 사항에 대한 PR을 고려해 볼 수 있습니다.