Граватар заблокирован в Китае, нужен обходной путь
Я разрабатываю приложение Ruby on Rails.
Gravatar заблокирован в Китае, где у нас множество пользователей. Это означает, что если вы извлечете сайт с сайта gravatar в своем приложении, ваш сайт будет зависать / не загружаться для тех, кто живет в Китае.
Итак, у меня есть два варианта:
- Загрузите все граватары на s3 с рабочими и сами обслуживайте их
- Найти обходной путь
Обходной путь № 1 - использовать CDN, подобный облачному сигналу, который я могу использовать для обслуживания Gravatars. Было бы замечательно, если бы существовало что-то подобное, работающее по принципу "включай и работай", это также улучшило бы производительность.
Обходной путь № 2 - использовать китайское граватарское зеркало для всех, кто находится в Китае, на основании их IP-адреса.
Обходной путь № 3 заключается в кэшировании изображений с помощью гема Gravatar Ultimate, который использует ActiveSupport:: Cache:: SynchronizedMemoryStore.new ( https://github.com/sinisterchipmunk/gravatar). Я не уверен, что это масштабируется для десятков тысяч ежедневных пользователей.
Обходной путь № 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
1 ответ
Здесь есть зеркало по адресу https://cdn.v2ex.com/gravatar/5e801ed65b6f99fcad45fc7e61a5ffde
Также, как правило, GFW менее простителен для пересечения HTTPS-трафика, поэтому, если вы используете HTTP для gravatar.com, может быть некоторое улучшение