0

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

Gravatar 在中国被封锁,我们有大量用户。这意味着如果您从应用程序中的 gravatar 网站拉取数据,您的网站将崩溃/无法加载任何位于中国的人。

所以我有两个选择:

  1. 将所有 gravatar 与工人一起上传到 s3 并自己为他们服务
  2. 找出解决方法

解决方法 #1 是使用像 cloudflare 这样的 CDN,我可以用它来服务 Gravatars。如果存在这样的即插即用的东西会很棒,它也会提高性能。

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

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

解决方法 #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
4

1 回答 1

0

这里有一面镜子https://cdn.v2ex.com/gravatar/5e801ed65b6f99fcad45fc7e61a5ffde

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

于 2017-11-30T09:35:27.507 回答