我想跟踪个人用户下载统计信息,我使用Ruby on Rails插件回形针处理上传,文件存储在本地服务器上,我不使用S3。
每个文件都有一个26个字符长的唯一名称,属于用户,因此无论谁下载该文件,下载的GB都将从相应的用户帐户中获取。
答案 0 :(得分:2)
这取决于您存储文件的位置。如果它们在public
目录中,那么当有人请求它时,它不会通过Rails堆栈,所以这里唯一的方法是读取服务器日志,或者一般来说它取决于你正在使用的服务器而且你在那里应该为你的问题寻找答案。
否则,如果您通过控制器提供文件,那么在控制器处理期间,您应该知道哪个用户正在发出此请求以及正在请求哪个文件。然后,您可以将每个下载请求存储在特殊表中,其中包含以下字段:user_id, file_id, file_size
或类似的内容,或者只是向用户模型中的字段添加一些值,例如添加到total_downloads
字段。第一种解决方案更好,因为您确切地知道下载的文件和时间。
当然,您不会知道用户是否停止下载文件,并且会在下载开始时考虑整个文件大小。