Это зависит от того, где вы храните файлы. Если они находятся в каталоге public
, то, когда кто-то его запрашивает, он не проходит через стек Rails, поэтому единственный способ здесь - читать журналы сервера, или, в общем, зависит от используемого вами сервера и там вы должны искать ответ для вашего вопроса.
В противном случае, если вы обслуживаете файлы через контроллер, то при обработке в контроллере вы должны знать, какой пользователь выполняет этот запрос и какой файл запрашивается. Затем вы можете сохранить каждый запрос на загрузку в специальной таблице с такими полями: user_id, file_id, file_size
или что-то подобное или просто добавить некоторое значение в поле в пользовательской модели, например, до total_downloads
. Первое решение лучше, потому что вы точно знаете, какие файлы были загружены и когда.
Конечно, вы не узнаете, остановил ли пользователь загрузку файла, и в начале загрузки будет зарегистрирован весь размер файла.
Я настоятельно рекомендую отправить файл через контроллер, чтобы у вас было больше контроля над процессом, как указано в klew. – jschorr