我想創建一個網站,用戶可以在其中上傳圖像,視頻和其他類型的文件。 我做了一些research和人們似乎建議將文件保存爲數據庫中的BLOB是一個壞主意;相反,將文件路徑保存在數據庫中。服務器後端:如何爲上傳的文件生成文件路徑?
我的問題是,如果我保存在數據庫中的文件路徑:
1. How do I generate the file names?
我想過計算文件名的MD5值,但如果兩個文件具有相同的名稱?將用戶名和時間戳等添加到文件名?它有意義嗎?
2. What is the best directory structure?
如果在二○一三年十二月一十七日,2018年12月18日,我能不能把它放在user_ABC /圖像的用戶上傳圖像/,然後創建時間戳子目錄20131217,20131218等?所有這些東西的最佳結構是什麼?
3. How do all these come together?
好像維持這個系統是這樣一種痛苦,因爲文件系統操作的腳本是緊密再加與數據庫操作(也可能需要有關數據庫事務的煩惱嗎?說在一個事務中我更新了數據庫,但未能修改文件系統,所以我需要回滾我的數據庫?)。
而且我認爲這個系統沒有規模(什麼,如果我的機器上運行了硬盤,所以我需要將文件上傳到第二臺機器呢?如果我的內容是一個羣集上?)
我認爲我的真正問題是:
4. Is there any existing framework/design pattern/db that handles this problem?
What is the standard way of handling this kind of problems?
在此先感謝您的答案。
對於一件簡單的事情來說太麻煩了?如果你不確定爲什麼不去找一個爲你處理這個問題的框架。 – marekful