通常在開發網站時,我希望儘可能地保留網絡服務器。我嘗試將配置詳細信息,會話數據等存儲在數據庫後端。這使我可以根據需要輕鬆地重新構建Web服務器,或者根據需要從理論上添加更多的Web服務器。網頁架構 - 何處放置上傳的二進制數據
我遇到的一個問題是客戶端上傳圖像數據或二進制文件。我傾向於將這些文件存儲在Web服務器上,而不是放入數據庫中。但是,這個問題是我需要從Web服務器備份這些數據,而我並不喜歡這些數據。
我寧願讓Web服務器只提供數據,但不能存儲它。我已經看過了一些選項,例如將文件傳輸到另一組Web服務器上,這些服務器僅充當內容交付服務器(無腳本或處理它們)或將客戶端數據放入數據庫的blob中。我想過的另一個選擇是將文件放到特定的文件服務器上,就像在局域網上一樣,然後將文件服務器上的共享掛載到網絡服務器上,並讓網絡服務器直接傳送文件。我甚至考慮將它放入一個Hadoop風格的HDFS分佈式文件系統,然後讓網絡服務器將它從那裏拉出來,但沒有一個看起來非常正確。
無論如何,在存儲客戶端提供的二進制數據(如圖像或文檔)時,通常認爲什麼是最佳實踐?
我更喜歡通用的Web架構類型響應/方法,而不僅僅是某種特定語言可能鼓勵或推動某種解決方案的方式。但是,如果您可以比較和對比由許多不同語言/庫推廣的方法,那麼知道這一點也會非常有趣。
在數據庫中添加這些文件不是一個選項嗎? –
這是一個選項,實際上它們都是可能的。這更多的是被認爲是「良好實踐」的案例,從網站設計的角度來看,這被認爲是「不好的做法」。顯然,每個都需要考慮諸如成本,易於開發,可擴展性等不同的因素。 –
數據庫或雲(亞馬遜s3),支持後者 – MikeSW