1

我正在開發一個Ruby on Rails應用程序。Gravatar在中國被封鎖,需要一個解決方法

Gravatar在中國受阻,我們有大量的用戶。這意味着如果您從應用程序的Gravatar網站中提取,您的網站將會崩潰/無法加載中國任何人。

所以,我有兩個選擇:

  1. 上傳所有gravatars到S3與工人併爲他們自己
  2. 找出一個解決辦法

解決方法1是使用CDN喜歡的CloudFlare我可以用來服務Gravatars。如果存在即插即用的東西,那將會很棒,它也會提高性能。

解決方法#2將根據中國用戶的IP地址爲中國境內的任何人提取中國鏡像鏡像。

解決方法#3是使用Gravatar Ultimate 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 
+0

你的意思是說你有很多用戶,不是'from'gravatar,而是''使用'* gravatar作爲他們的個人資料圖片? – AntonTkachov

+0

不,我的意思是任何基於中國的用戶,如果您嘗試鏈接到gravatar.com上託管的圖片,您的應用程序將無法加載,甚至可能會崩潰。 –

+1

您可以嘗試加載圖像服務器端,然後base64編碼數據並呈現圖像內聯,應該繞過任何過濾器,如:https://stackoverflow.com/questions/22717251/how-cani-i-顯示PNG-數據即一個圖像-內部功能於所述瀏覽器 – DivXZero

回答

相關問題