문제
멀티사이트 환경에서 DiscourseConnect Provider가 페이로드 내 user_avatar에 대해 잘못된 URL을 반환합니다.
DiscourseConnect가 프로바이더로 작동할 때, 반환되는 avatar_url에는 ‘uploads’ 경로와 멀티사이트 호스트 이름이 누락된 형태로 나타납니다.
예를 들어 다음과 같습니다.
기대값: https://cdn.cdnprovider.com/uploads/dbname/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg'
실제값: https://cdn.cdnprovider.com/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg`
해당 코드는 여기에 있으며, 업로드 정보로부터 URL을 재구성하고 있습니다.
if current_user.uploaded_avatar.present?
base_url =
Discourse.store.external? ? "#{Discourse.store.absolute_base_url}/" : Discourse.base_url
avatar_url =
"#{base_url}#{Discourse.store.get_path_for_upload(current_user.uploaded_avatar)}"
sso.avatar_url = UrlHelper.absolute Discourse.store.cdn_url(avatar_url)
end
반면 user.uploaded_avatar.url은 올바른 결과를 반환하는 것으로 보입니다.