Gravatar在中国受阻,需要一个解决方法

时间:2017-11-18 10:58:33

标签: ruby-on-rails cdn cloudflare gravatar great-firewall-of-china

我正在开发Ruby on Rails应用程序。

Gravatar在中国被封锁,我们拥有大量用户。这意味着如果您从应用程序中的gravatar网站上撤下,那么您的网站将会崩溃/不会加载到中国的任何人。

所以我有两个选择:

  1. 将所有gravatars上传到s3与工作人员并自己提供
  2. 找出解决方法
  3. 解决方法#1是使用类似cloudflare的CDN,我可以用它来服务Gravatars。如果这样的东西是即插即用的话会很棒,它也会提高性能。

    解决方法#2是根据中国人的IP地址从中国的数字镜像中提取任何人。

    解决方法#3是使用Gravatar Ultimate gem缓存图像,该gem使用ActiveSupport :: Cache :: SynchronizedMemoryStore.new(https://github.com/sinisterchipmunk/gravatar)。我不确定这是否适用于数以万计的日常用户。

    解决方法#4是在浏览器中以某种方式检测Gravatar的失败,以及它是否无法显示默认(非基于图像)的头像。如果它在第一次尝试之后为所有头像做到这一点,或者记住并记住后续尝试,那将会很棒。

    也许第四个是最简单/最强大的,但我不知道该怎么做。对于gravatars,我总是使用这个简单的帮助方法:

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

1 个答案:

答案 0 :(得分:0)

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

处有一面镜子

一般来说,作为经验法则,GFW对HTTPS流量交叉的宽容度较低,因此如果您对gravatar.com使用HTTP,则可能会有一些改进