1

Ruby on Rails 앱을 개발 중입니다.중국에서 차단 된 Gravatar는 해결 방법이 필요합니다.

Gravatar는 사용자가 많은 중국에서 차단됩니다. 즉, 앱에서 gravatar의 사이트를 가져 오는 경우 중국에 거주하는 사용자는 귀하의 웹 사이트가 충돌하거나로드되지 않습니다.

  1. 모두 업로드 gravatars 노동자 S3와
  2. 그림 그들에게

해결 방법 # 1 cloudflare 같은 CDN을 사용하는 것입니다 해결 방법을 자신을 봉사 :

그래서 나는 두 가지 옵션이 있습니다 Gravatars를 제공하는 데 사용할 수 있습니다. 플러그 앤 플레이 방식이 존재한다면 성능이 향상 될 수 있습니다.

해결 방법 # 2는 중국의 gravatar 미러에서 IP 주소를 기반으로 중국 내에있는 모든 사람을 대상으로합니다.

해결 방법 # 3은 ActiveSupport :: Cache :: SynchronizedMemoryStore.new (https://github.com/sinisterchipmunk/gravatar)를 사용하는 Gravatar Ultimate gem으로 이미지를 캐시하는 것입니다. 수만 명의 일일 사용자에게 확장 성이 있는지는 잘 모르겠습니다.

해결 방법 # 4는 브라우저에서 Gravatar의 실패를 감지하고 기본 (이미지 기반이 아닌) 아바타를 표시하지 못하는 경우입니다. 첫 번째 시도 후에 모든 아바타에게이 작업을 수행했거나 이후 시도에서 기억하고 기억하는 것이 좋을 것입니다.

아마도 네 번째가 가장 쉽고 강력합니다.하지만 어떻게해야할지 모르겠습니다.

def gravatar_url(user) 
    gravatar_id = Digest::MD5.hexdigest(user.email.downcase) 
    "http://gravatar.com/avatar/#{gravatar_id}.png?d=identicon&s=150" 
end 
+0

'gravatar'가 아닌, 프로필 이미지로 * gravatar를 사용하는 사용자가 많다는 것을 의미합니까? – AntonTkachov

+0

아니요, 중국에 거주하는 모든 사용자의 경우 gravatar.com에서 호스팅되는 이미지에 연결하려고하면 앱이로드되지 않고 충돌 할 수 있습니다. –

+1

이미지를 서버 측에로드 한 다음 데이터를 Base64로 인코딩하고 이미지를 인라인으로 렌더링 할 수 있습니다. 즉, 다음과 같이 필터를 통과해야합니다. https://stackoverflow.com/questions/22717251/how-cani-i- 브라우저 내부의 이미지로 display-png-data-browser – DivXZero

답변

0

https://cdn.v2ex.com/gravatar/5e801ed65b6f99fcad45fc7e61a5ffde

에서 여기 거울 그래서, HTTPS 트래픽 횡단 덜 용서가 또한 일반적으로 엄지 손가락의 규칙대로 GFW가된다 : gravatars를 들어, 난 항상이 간단한 도우미 메서드를 사용했습니다 gravatar.com에 HTTP를 사용하는 경우 약간의 개선이있을 수 있습니다.