CMS如何管理和存儲海量圖片⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾?
圖片管理的應用很常見⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,類似的在線相冊☈⊙☉℃℉❅、作品集⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、在線圖庫❻❼❽❾❿⓫⓬⓭⓮⓯⓰、醫學圖庫㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂、以及在線展覽☧☬☸✡♁✙♆。,、':∶;,都是圖片的存儲和運用♀☿☼☀☁☂☄,圖書館ⓣⓤⓥⓦⓧⓨⓩ、文化館❣❦❧♡۵、展覽館⑰⑱⑲⑳⓪⓿❶❷❸❹❺、高校❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣、中小學等單位應用的比較多⑰⑱⑲⑳⓪⓿❶❷❸❹❺,所以⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,我們之前就有一篇文章講《如何基于開源系統構建圖庫/圖片管理系統》☾☽❄☃,有興趣可以看看✵✶✷✸✹✺✻✼❄❅。
那么♦☜☞☝✍☚☛☟✌✽✾✿❁❃,如何管理海量圖片⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、大量圖片呢ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ? 會不會遇到存儲問題㈠㈡㈢㈣㈤㈥㈦、性能問題☧☬☸✡♁✙♆。,、':∶;、搜索問題①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯?本文就目前我們對圖片的處理和架構㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,做一個分析♀☿☼☀☁☂☄,僅供參考ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。
CMS存儲和管理圖片
我們通過CMS來管理圖片⒜⒝⒞⒟⒠⒡⒢⒣⒤,所以⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,通常情況下☧☬☸✡♁✙♆。,、':∶;,每上傳一張圖片✵✶✷✸✹✺✻✼❄❅,都要建立一條數據庫記錄☧☬☸✡♁✙♆。,、':∶;,在Drupal里面叫Media類型①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯。
用CMS表來存儲圖片ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,這種做法好處:
1㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉、圖片有詳細的數據信息⑰⑱⑲⑳⓪⓿❶❷❸❹❺,比如加標簽❣❦❧♡۵、說明⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、分類等信息ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ。
2⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓、圖片有引用信息☾☽❄☃,被其他類型應用✺ϟ☇♤♧♡♢♠♣♥,被文章引用①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,會標記❣❦❧♡۵,也就是沒有被引用的圖片可以被刪掉⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ。
這樣做缺點就是所有圖片都會存數據庫♀☿☼☀☁☂☄,因此圖片越多⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,會帶來數據庫本身的壓力㈠㈡㈢㈣㈤㈥㈦,這個算是缺點☧☬☸✡♁✙♆。,、':∶;。
當然ⓣⓤⓥⓦⓧⓨⓩ,總體來講❣❦❧♡۵,還是利大于弊⑰⑱⑲⑳⓪⓿❶❷❸❹❺,不可能所有圖片類似文件的存儲❻❼❽❾❿⓫⓬⓭⓮⓯⓰,那樣沒有管理✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,沒有說明☈⊙☉℃℉❅,沒有索引웃유ღ♋♂,那就是百度云盤了☈⊙☉℃℉❅,跟圖片管理系統或者說CMS沒一毛錢關系了☾☽❄☃。
海量圖片存儲的三要素
那么在海量圖片存儲中✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,需要注意哪些呢웃유ღ♋♂?首先♦☜☞☝✍☚☛☟✌✽✾✿❁❃,要保持文件系統的性能㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,所以要分文件夾⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,可以按日期☧☬☸✡♁✙♆。,、':∶;。其次ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,保持數據庫的表大小⒜⒝⒞⒟⒠⒡⒢⒣⒤,可以進行集群或者分表⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。最后㈠㈡㈢㈣㈤㈥㈦,就是如何搜索和查找圖片ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,這時候可以通過專業的搜索引擎工具☧☬☸✡♁✙♆。,、':∶;,比如Solr和Elastic Search⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,與CMS集成⑰⑱⑲⑳⓪⓿❶❷❸❹❺,即可實現信息的索引㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉。
所以㈠㈡㈢㈣㈤㈥㈦,關鍵三要素的解決方案和架構圖如下:
1. 圖片存儲:按日期份文件夾ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、物理存儲對接OSS存到云服務㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
2. 數據表存儲:分表或者做Drupal單例集群✺ϟ☇♤♧♡♢♠♣♥。
3. 搜索和交互:通過索引工具去索引和檢索☧☬☸✡♁✙♆。,、':∶;。

架構可以參考上圖⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,最終的操作都是直接跟Solr交互㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,所以性能會非常好☾☽❄☃,內容的管理和落地都是基于CMS架構的☈⊙☉℃℉❅,文件的存儲都是基于云存儲⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,所以整體的架構和性能是可以保障的웃유ღ♋♂。
下面也是我們基于Drupal構建的圖片管理系統☧☬☸✡♁✙♆。,、':∶;,可以分文件夾⒜⒝⒞⒟⒠⒡⒢⒣⒤、搜索⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾、加標簽等操作웃유ღ♋♂,用戶在使用的時候⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,只需要從媒體庫里面選擇即可❻❼❽❾❿⓫⓬⓭⓮⓯⓰。


最后❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,關于Drupal的資源圖庫管理系統⒜⒝⒞⒟⒠⒡⒢⒣⒤,詳情參考《如何基于開源系統構建圖庫/圖片管理系統》①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯。
詳細的方案介紹ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,可以參考我們的《非遺數據庫方案介紹》
更多技術資料⑰⑱⑲⑳⓪⓿❶❷❸❹❺,可以參考我們之前相關介紹文章㈠㈡㈢㈣㈤㈥㈦,如果需要建設相關數據庫㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,以及Drupal靈活的元數據/檢索/可視化構建演示或者資料①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,可以聯系我們♦☜☞☝✍☚☛☟✌✽✾✿❁❃。
1ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、如何用開源的系統來構建知識庫平臺⑰⑱⑲⑳⓪⓿❶❷❸❹❺?
2✵✶✷✸✹✺✻✼❄❅、如何基于開源系統構建資料庫/文檔庫平臺
3ⓚⓛⓜⓝⓞⓟⓠⓡⓢ、如何建設在線展覽和多媒體展覽☧☬☸✡♁✙♆。,、':∶;?
4✺ϟ☇♤♧♡♢♠♣♥、CMS如何存儲和管理大量圖片/海量圖片㈠㈡㈢㈣㈤㈥㈦?
5⒜⒝⒞⒟⒠⒡⒢⒣⒤、CMS如何做視頻管理ⓣⓤⓥⓦⓧⓨⓩ?
6⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾、文檔資源庫建設之搜索引擎如何搜索文件的內容(pdf/wrod)㈠㈡㈢㈣㈤㈥㈦?
7ⓚⓛⓜⓝⓞⓟⓠⓡⓢ、如何用開源的Drupal來構建視頻教學平臺?
8✺ϟ☇♤♧♡♢♠♣♥、CMS的如何實現審核發布機制⑰⑱⑲⑳⓪⓿❶❷❸❹❺?
9ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ、Headless CMS:以API為輸出的內容系統的構建
10⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、開源的CMS如何實現問卷調研♀☿☼☀☁☂☄?