2011-04-25 56 views
1

我曾在幾個SAAS站點看到人們存儲數據,並且該站點跟蹤其服務器上有多少數據。他們將這些信息顯示給用戶。獲取每個用戶的文件夾大小和所有內容

在軌道上使用紅寶石這些網站的一些如何做到這一點?似乎有足夠的網站這樣做,必須有一個我沒有意識到的標準方式。還是每個人都非常執行他們自己的解決方案?

如果每個人都已經實施了自己的解決方案則是一個很好的appraoch使用:

`du -s <directory>` 

,只是分析數據。

回答

0

du對於這類事情來說是一個很好的工具,它可能比使用Find手動滾動的速度快,但是在分析輸出時需要小心。

目錄在其名稱中包含外來字符的情況並不少見,其中包括明顯的空格以及不尋常的新行。這使得解析的du如果有人這有些不可靠的輸出:

% mkdir "foo 
1234  bar" 

如果這不是什麼大不了的事,忘掉它。否則,您需要手動進行遞歸計算,這對於大型文件系統上的Ruby解釋器可能需要一段時間。

+1

標誌着我這是因爲'du'就是我最終使用的答案。 – percent20 2011-04-27 18:48:54

1

全部取決於網站如何存儲實際數據,以及有關其用戶上傳到其中的對象的元數據。數據不存儲在傳統文件系統(如S3)上是完全可能的。所以在像du這樣的情況下不起作用。

所以,如果你在數據庫中存儲的元數據,包括大小,你可以只通過一個查詢得到上載大小的總和,而不會讓人產生了底層的文件系統......

+0

我根本沒有想到這一點。這讓我有更多的想法。謝謝。 – percent20 2011-04-25 19:11:33

+0

如果使用文件系統進行存儲,像du這樣的東西可能就足夠了。請記住,文件在磁盤上佔用的空間量可能與文件大小不同,具體取決於磁盤上設置的塊大小,因此實際磁盤空間量大於單個文件大小的總和。 – ewh 2011-04-26 13:52:32

+0

是的文件將在一個文件系統,所以杜看起來是我最好的選擇。我從來沒有考慮過獲取元數據和存儲它的想法。這是一個非常簡單的想法,儘管我不知道爲什麼我沒有想到它。謝謝。 – percent20 2011-04-27 18:48:21

相關問題