Отслеживайте, сколько пользователь скачивает в месяц - PullRequest
1 голос
/ 21 января 2011

Я бы хотел отслеживать статистику загрузок отдельных пользователей, я использую скрепку плагина Ruby on Rails для обработки загрузок, а файлы хранятся на локальном сервере, я не использую S3.

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

1 Ответ

2 голосов
/ 21 января 2011

Это зависит от того, где вы храните свои файлы. Если они находятся в каталоге public, то, когда кто-то запрашивает его, он не проходит через стек Rails, поэтому единственный способ здесь - прочитать журналы сервера, или в целом это зависит от сервера, который вы используете, и там вы должны посмотреть за ответ на ваш вопрос.

В противном случае, если вы обслуживаете файлы через контроллер, то во время обработки в контроллере вы должны знать, какой пользователь делает этот запрос и какой файл запрашивается. Затем вы можете сохранить каждый запрос на загрузку в специальной таблице с полями, подобными этим: user_id, file_id, file_size или чем-то подобным, или просто добавить некоторое значение в поле в пользовательской модели, например, в поле total_downloads. Первое решение лучше, потому что вы точно знаете, какие файлы были загружены и когда.

Конечно, вы не будете знать, прекратил ли пользователь загрузку файла, и он будет учитывать весь размер файла в начале загрузки.

...