在一個互聯網應用中,圖片扮演着越來越重要的角色。有穩定的可擴展的圖片存儲服務器就顯得尤為的重要,雲廠商們提供了便利的圖片存儲服務,花錢就可以解決了。這里簡單介紹一個開源的一個分布式圖片存儲服務器——zimg,來自己搭建一個圖片服務器。
當然你也可以利用分布式文件存儲系統在存儲圖片,比如FastDFS,不過針對圖片的特有功能,比如縮放、截取、傾斜等,都需要自己特殊處理,而這正是圖片服務器zimg所擅長的東西。
官網地址:http://zimg.buaa.us
服務器的安裝、配置、使用手冊等,官網都有詳細的介紹,可以直接查看官網,很詳盡,有問題也可以在github上提出issue,共同維護解決。
安裝成功后,打開測試頁面
上傳圖片后成功后頁面
圖片存儲時,會生成圖片對應的MD5值來作為尋址的唯一標識,圖片重復存儲時,在zimg中只會存儲一份,從而有效減少相同圖片的存儲。但理論上有一個弊端,一個圖片刪除后,所有引用的地方都會清除掉。
下面羅列zimg可以提供的常見功能:
所有圖片默認返回質量為75%,JPEG格式的壓縮圖片,這樣肉眼無法識辨,但是體積減小
獲取寬度為x,被等比例縮放的圖片
獲取旋轉后的圖片
獲取指定區域固定大小的圖片
獲取特定尺寸的圖片,由於與原圖比例不同,盡可能展示最多的圖片內容,縮放之后多余的部分需要裁掉
獲取特定尺寸的圖片,要展示圖片所有內容,因此圖片會被拉伸到新的比例而變形
獲取特定尺寸的圖片,但是不需要縮放,只用展示圖片核心內容即可
獲取按指定百分比縮放的圖片
獲取指定壓縮比的圖片
獲取去除顏色的圖片
獲取指定格式的圖片
獲取圖片信息
刪除指定圖片
而以上這些功能的提供,僅需要一個url+特定的參數,通過get方式就可以完成,這才是簡便之處。
zimg提供三種存儲方式:本地磁盤,beansdb,ssdb三種。單機存儲,依據其目錄結構設計,可以存儲1024 * 1024 * 1024 * 200KB = 200TB(單圖200KB大小)數據量,切換成beansdb或ssdb,后續可擴展成更大容量的存儲完全不是問題。
擴展閱讀:
長按2秒,識別二維碼,關注我。