2010-02-28 37 views
0

我正在創建一個允許用戶上傳照片的網站。這是一個Linux服務器。通過php將照片上傳到linux服務器 - 文件夾可以有多少個文件?

我想知道什麼是最好的目錄結構來保存這些圖片?是否有一個文件夾可以有文件數量的限制?

它會更好,以節省每一位用戶上傳到一個單個文件夾中的每一張照片,並在數據庫中的每一個參考。或者爲每個用戶創建一個文件夾,並將其所有照片放入其中?

+0

你不想嘗試和打擊的範圍,文件查找將得到前久,很慢。我建議把它們放在一個文件夾樹中。看看這個問題,它幾乎是重複的:http://stackoverflow.com/questions/446358/storing-a-large-number-of-images,這也是相關的:http://stackoverflow.com /問題/ 466521 /如何一對多-文件-IN-A-目錄是太多 – 2010-02-28 08:50:49

回答

2

有可能是對文件沒有限制,但根據文件系統,你想限制目錄中的文件的數量到1000之間10,000。如果你的文件系統沒有索引目錄,即使有1000個文件也會使文件操作變慢。

如果你的文件系統沒有索引目錄,你可以很容易地在一個文件中包含100,000個文件,但你不想。在一個包含1k文件的目錄上執行ls -l會變得很慢;你甚至可能會放棄它,甚至開始輸出一個有100k文件的目錄。

如果是不會太多的用戶,其每個用戶一個目錄是一個好主意。如果將有很多用戶(超過1k),我建議將這些文件存儲在最多1k個文件的目錄中,然後再創建一個新目錄。

0

的唯一限制文件的目錄可以在linux持有的空閒inode數的數量。你可以通過執行確定這個數字:

df -i 

的數字報道IFree是,你可以在一個目錄持有,但要注意,這個數字是整個文件系統的文件數量的上限。因此,如果您將最大數量的文件放在一個目錄中,那麼您將無法在文件系統的其他任何位置創建更多文件。

一個爲每個用戶目錄是去

4

@OP的路上,有幾個方法,一個目錄可以有所謂的「限制」。一種是如果設置了磁盤配額。另一個取決於文件系統。例如,在this文章,它說的ext3有

There is a limit of 31998 sub-directories per one directory, stemming from its limit of 32000 links per inode.

您可以找到這些信息進一步查找其他文件系統。例如,ReiserFS文件系統可以處理多達2^31%目錄等等...

相關問題