【网盘项目日志】20210531:Seafile 审计系统开发日志

备注:本博客编写时,系统本身已经完成,本博客为补档内容。

书接上回

当时搞 Virus Scan 搞到自闭了嘛(就是被连续封号 10 小时那段时间),然后看到 seafevents 里面还包含了审计系统,那就顺便弄了啦。

前端问题

老问题,还是 isPro 限制的,前面说了无数次了,这里就不说了。

权限问题

放开前端界面以后,发现所有界面都爆权限错误(403),看 Web 控制台输出发现是 403 错误,而 seahub 后台也报告了相应错误。

根据 urls.py 中指向的 View,又看到了跟病毒扫描接口里面一模一样的 IsProVersion 类限制,总共有 5 处,全部删掉。

permission_classes = (IsAdminUser, IsProVersion)

第一次调试

现在接口也可以访问了,但是打开以后,所有的数据都为 0。我尝试登录用户,创建文件,但是依然是 0。看来,不能那么草率进行简单处理了。

研究机制

经过我的研究,公布我所了解到的信息:

  1. seafevents 除了可以运行定时任务,还可以接受来自 seahub 的 “events”。例如,有用户登录了,有用户下载文件了,等等。
  2. seafevents 中的审计系统存储逻辑是(以上传文件为例):事件系统监听,当有用户上传文件时,系统会先将相关数据信息存储在 seafevents 进程中的一个变量中,然后每隔 1 小时将变量中的内容集中存入数据库中。
  3. seafevents 收集的行为:用户登录、用户上传文件、下载文件、通过公开链接上传文件、通过公开链接下载文件、同步客户端上传文件、同步客户端下载文件。
  4. 与用户活跃度(Traffic)相关的行为:所有上传和下载行为,不包括用户登录

从我们收集到的信息,不难得出以下结论:

  1. 要使审计系统正常运行,必须时刻运行 seafevents 进程。
  2. 审计系统类似于一套带有 Cache 机制的数据存取,这是 Seafile 考虑到了频繁向数据库插入导致的性能问题。但是,定时插入系统导致审计数据并非实时更新,而且在 seafevents 进程意外退出时,其未保存的数据将全部丢失。

第二次调试

其实感觉没有对它原本的机制做太多修改,只是确认了操作方式。不过在调试过程中,发现其他数据在经过正确

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值