Получить размер папки и все содержимое для каждого пользователя - PullRequest
1 голос
/ 25 апреля 2011

Я видел на нескольких сайтах SAAS, где люди хранят данные, а сайт отслеживает, сколько данных находится на их серверах. Они отображают эту информацию для пользователя.

Используя ruby ​​на рельсах, как некоторые из этих сайтов делают это? Кажется, что достаточно сайтов делают это, что должен быть стандартный способ, о котором я просто не знаю. Или все в значительной степени реализуют свое решение?

Если каждый реализовал свое собственное решение, тогда это хороший аппрокс, использующий:

`du -s <directory>` 

и просто разбор данных.

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

Все зависит от того, как сайт хранит фактические данные и метаданные об объектах, которые его пользователи загружают на него.Вполне возможно, что Данные не хранятся в традиционной файловой системе (такой как S3).Так что в таких случаях, как du не будет работать.

Таким образом, если вы сохраняете метаданные в базе данных, включая размер, вы можете просто получить сумму размера загрузки с помощью запроса, и вам не нужно попадать в базовую файловую систему ...

0 голосов
/ 25 апреля 2011

du - очень хороший инструмент для такого рода вещей, он, вероятно, быстрее, чем то, что вы можете катить вручную, используя Find , но вам нужно быть осторожным при разборе вывода.

Часто каталоги содержат экзотические символы в своих именах, которые включают в себя очевидные пробелы и необычные строки.Это делает парсинг вывода du несколько ненадежным, если кто-то делает это:

% mkdir "foo
1234     bar"

Если это не имеет большого значения, забудьте об этом.В противном случае вам придется выполнять математику и выполнять математику вручную, что может занять некоторое время для интерпретатора Ruby в больших файловых системах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...