2014年的時候,我發表過《使用七牛云存储加速下载Gravatar头像的方法》,其中利用的是七牛雲存儲的鏡像存儲功能。我當时之所以選擇七牛,是因為很多人也在用七牛。這其實是一種跟風的劣根的體現,需要自省。
此話怎講?
七牛雲存儲,是一種對象存儲服務,顧名思義,是用來存儲對象用的,類似於阿里雲的對象存儲(OSS)。其中,「對象」的定義比較狹義,就七牛與阿里雲的實現來看,存儲的「對象」是文件,也就是要有惟一的前綴(目錄)與文件名,不能含有參數。即使用戶請求的URI含有參數,回源抓取後存儲的文件的文件名也是不含參數的。當用戶再次請求並命中緩存後,URI中的參數就會被自動忽略。
也正是因此,使用七牛雲存儲加速Gravatar頭像的獲取會出現一些詭異的問題。眾所周知,Gravatar提供了數種默認頭像,均可以在用戶未上傳對應頭像圖片時用以臨時填充,而決定具體採用哪一種默認頭像的,則正是向Gravatar頭像圖片接口傳送的URI參數。對參數的忽略,就是對具體請求內容的忽略。從這個意義上來講,七牛雲存儲是不適合用來加速含有有效參數的圖片資源的獲取的。
按照這個思路,加速Gravatar頭像的獲取不能用「(對象)存儲」一類的雲服務,而應該用為緩存某個固定URI而生的CDN類服務。CDN類服務除了存儲的「對象」的性質與對象存儲類服務不同外,還具有的一項特性是「緩存」。與以七牛為代表的對象存儲服務不同,「緩存」是有期限的,目標的「緩存」可以在到期後自動移除,覆蓋以最新的內容(如果可能)。頭像是會更新的,CDN類服務的這一特性恰好迎合了加速Gravatar頭像的獲取的需求。所以,CDN類服務纔是加速Gravatar頭像的獲取的最優選擇。
恰逢中國政府對互聯網自由的壓制不斷加強,Gravatar頭像的官方獲取接口幾乎被全部封鎖,其中苟延殘喘的「cn.gravatar.com」速度也不理想,我們得以應用這項技術,加速Gravatar頭像的獲取。這也算是一種無聲的對抗罷。使用阿里雲CDN為Gravatar頭像獲取接口建立鏡像非常容易,下面介紹大致的方法。
首先,你要有一個阿里雲賬戶和一個通過阿裡雲接入並完成ICP備案的域名,然後在阿里雲的管理控制臺的「CDN」選項卡中添加一個加速域名,加速域名就是要用來訪問的域名,可以是一個二級域名,如我用的「gcache.papwin.com」,源站填寫一個已有的穩定可靠的非官方Gravatar頭像獲取接口(要確保中國內地可以正常訪問),提交並通過審核後,將回源域名設置為源站域名,再將加速域名以CNANE的方式解析到阿里雲提供的CDN域名上去。最後,在緩存規則中添加一條「/avatar」目錄,緩存時間可以稍設長一些,我設置的是一個月。至此,基於阿里雲CDN的Gravatar加速鏡像就建立好了。
我用香港的主机直接本地缓存就OK啦(●’◡’●)
為何你的評論總是默認進入待審隊列
我也不知道啊(-__-)b
大概是歧视我的邮箱或者名字–,
。。繁体看的有点小吃力。。关于本站为什么木有自我介绍呢
因為是「關於本站」而不是「關於我」啊
不是国家专门对一个头像服务进行封锁,而是误杀。该头像服务使用了某CDN,只因为使用该CDN的某网站发表了让当局不爽的言论才导致封锁。
如果国外CDN商想留住客戶的話…就要搞自我審查,嘖嘖,原來是TG的陰謀,如果只想封某個特定網站的話DNS污染或者RST攻擊都可以啊
这次还真是官方拒绝审查导致的时不时被大规模cdn屏蔽事件。
因为根据个人记忆,官方曾经发布过拒绝审查的文章。现在查到了。
参见截图
http://imgsrc.baidu.com/forum/w%3D580/sign=8efc9ae866380cd7e61ea2e59145ad14/20cbb0cad1c8a786f7952f566409c93d71cf507a.jpg
http://www.solidot.org/story?sid=41926
一篇墙内的中文报导