2011-01-20 2 views
1

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

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

ответ

2

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

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

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

+0

Я настоятельно рекомендую отправить файл через контроллер, чтобы у вас было больше контроля над процессом, как указано в klew. – jschorr

Смежные вопросы