2016-03-04 16 views
0

我正在構建一個應用程序,要求用戶能夠上傳音頻文件,然後在稍後請求這些相同的文件。因爲我對這一切都很陌生,所以創建文件目錄似乎讓我感到困惑,GridFS(將音頻文件存儲在數據庫中)似乎更易於理解。GridFS + express

我很困惑的是,如果我走向GridFS的方向,每個用戶都需要有一個GridFS集合。或者我會以某種方式設置一個主要的GridFS集合,並且所有用戶的音頻文件都將位於該集合中。然後,在我的貓鼬用戶模型中,我將保存屬於給定用戶的音頻文件的名稱。然後,當用戶請求他們的音頻文件時,我會得到屬於該用戶的文件列表,在一個主要的GridFS集合中搜索這些文件?

我知道我可能會更好地建立一個文件系統(性能的原因),我看着nginx,但我發現自己變得越來越困惑。

回答

1

將gridFS視爲一個包含音頻文件的集合(因此我們有fileId和內容), 然後您需要將fileId存儲在擁有所有者記錄/文檔的位置。

在一個文檔中存儲指向用戶文件的指針可能超出最大文檔大小(16MB) - 因此,如果這可能是一種情況 - 那麼我們需要一個簡單的userId-fileId集合。 玩得開心!

+0

謝謝,我只是想澄清超過16MB大小文件限制的問題。如果我明白你在說什麼,如果用戶有很多音頻文件,那麼用戶記錄/保存指向該用戶擁有的所有音頻文件指針的文檔可能會變得更大,達到16MB。在我的情況下,用戶只能存儲3個音頻文件,單個文件的大小可能大於16MB。 –

+0

在這種特殊情況下只是將用戶文檔中的音頻文件引用。 – profesor79