2013-04-27 71 views
1

我正在設計一個存儲許多大文件的解決方案。從我在stackoverflow上讀到的內容來看,像Mongodb這樣的數據庫系統是存儲大量文件的最佳方式(來源:Scalable File Storage)。爲什麼?當然,我最好將文件存儲在文件系統中的可擴展系統上,比如亞馬遜,並給每個文件一個ID。許多大文件的PHP存儲

,試圖尋找一個答案我已經看過:

到目前爲止,我一個ppreciate:

  1. 存儲在文件系統上會使服務器遷移困難得多。
  2. 對於可以保存在目錄中的文件和文件夾的數量是有限制的。

這兩點似乎都沒有說服我,值得編程文件的額外工作保存在數據庫中。如果我在其中存儲大文件而不是直接存儲在文件系統中,它也會增加數據庫災難性損壞的風險。我目前正在考慮將這些文件存儲在Amazon S3解決方案中。你能否讓我知道是否瘋狂和/或如果我忽視了什麼?

+1

我不確定你在做什麼,但如果涉及金錢,我會使用第三方來確保他們將被安全地存儲。然而,在大多數情況下,我會將它們存儲在文件系統中。事情是,你需要想出一個好的數據庫模式來組織文件和他們所有的信息。你必須問自己的另一個問題是,這些文件是否應該受到保護?如果是這樣,您需要採取額外步驟以確保無法通過URL操作輕鬆訪問它們。 – 2013-04-27 11:16:00

+1

存儲大文件的最佳方式是在服務器的文件系統上,或在cdn上,而不是在數據庫中 - 只存儲對數據庫中文件的引用 – 2013-04-27 11:16:13

+1

我會使用S3。我會考慮開發自己的系統的唯一條件是是否存在符合S3要求的合規要求。在小範圍內,建立一個系統來構建一個與s3具有相同性能/可靠性的系統將是非常昂貴的。 – datasage 2013-04-27 11:21:34

回答

0

數據庫是爲數據而不是文件!我遇到過很多人喜歡將它存儲到數據庫的情況,無論是mangodb還是其他。從邏輯上講,這不值得。

您的問題「是否值得編程?」;如果你偶爾做一次,那麼嚴重不會。將東西放入數據庫需要很多努力。然而,如果你是一個開發人員,一旦你習慣了它,你就會做到這一點,即使它不值得這樣做:)

我投票選擇文件系統存儲文件而不是數據庫。而對於困難沒有。的文件,你會找到一種方法來解決它肯定。

+0

數據庫存儲也有好處,這使得它值得,事實上許多cdns存儲在數據庫中存儲的數據塊格式的文件數據 – Sammaye 2013-04-27 11:51:15

+0

@Sammaye,完全同意你的看法。但是CDN是完全成熟的系統,比我們的普通託管服務器要好得多。 – 2013-04-27 12:00:16

+0

雖然這是真的,但在數據庫託管之前,要謹慎考慮,因爲沒有真正的解釋:) – Sammaye 2013-04-27 12:31:01

0

如果你想存儲自己託管的服務器上的文件,那麼你可以選擇MongoDB。 MongoDB是通過自託管服務器存儲大文件數據的最佳選擇。但是您希望避免維護自己託管的服務器,那麼您可以選擇Amazon S3。