小萝卜David 发表于 2024-7-23 12:49:30

活字格附件管理

本帖最后由 Brian.Zhang 于 2024-7-25 09:54 编辑

活字格运行1年不到,附件上百万+,



1. 无法确定哪些附件在用,哪些附件没在用,目前是明确有不少附件没在用,没有很好的出发点着手清理。(大概约莫maybe有0.8T左右没在用的附件)


2.一年一百万+,还会一直增加。。。。。。

Brian.Zhang 发表于 2024-7-23 18:02:03

这,,,咱也不知道这些没在用的附件是怎么保留下来的,所以以下仅供参考哈:

一个思路是,写个应用用存储里的附件列表和数据库里的记录的附件信息去比对,数据库里没记录的那些附件,大概率是有问题的。
其他的得根据这个附件当时是咋进来的想对应的方式解决。

再一个,附件应该是跟随系统,需要有一个类似生命周期管理的逻辑设置(什么状况下添加、什么状况下保存、什么状况下自动删除),这个逻辑设置可能是自动写好的,也可能是需要半人工参与的,具体可以根据业务考量。

小萝卜David 发表于 2024-7-23 18:14:04

对于“一个思路”,
写不了一点,表有点多,数据量有点大,加上这一百万+的文件,这循环跑死都不一定能跑完。。。
对于“再一个”,
字我都认识,但我咋看不懂......或者 你说得都对,但是怎么做呢...... 或者 解决问题的关键是找出关键的问题......
反正这一百多万的附件是放这儿了,实打实的一百多万。。。

Brian.Zhang 发表于 2024-7-25 09:51:04

本帖最后由 Brian.Zhang 于 2024-7-25 09:52 编辑

有几个方法或许可以试下,,
1、把附件名导入到数据库的临时表,然后用sql查询比对这个临时表和原有的记录。
2、记得有个WinMerge的工具,可以用工具跑一跑试试,或者找下其他工具。

第二个主要的意思是说,一个附件被保存下来后,拿假删除的操作举个例子,系统得有方式能记录到这个假删除的附件有哪些,避免和正常附件混到一起分不清楚了。核心就是把不同附件区别开或者有记录。这个需要结合系统本身的功能来操作,我能说的就到这了;P。

Brian.Zhang 发表于 2024-7-25 09:54:26

这个需求没问题,就是不像是一个通用性的、标准的产品功能,更像是一个求助帖子,所以我这就标记为暂不采纳了哈

发表于 2024-7-25 10:15:01

避免附件孤立就是要给所有附件创建一个数据表,并在1个附件没有被引用的时候标记出来?
活字格用户不少都有文件管理的需求,

那么可以不可以有一个活字格功能,“附件管理”页面或者表,附件有2个状态,“已被引用”,“未被引用”

小萝卜David 发表于 2024-7-25 13:06:51

大哥说的方法试不了。
我可以写一个工具把附件名取出来存表,但是之后呢?之后还需要做的事情并不是"用sql查询比对这个临时表和原有的记录",而是需要遍历所有应用中所有的表,找出所有的附件/图片字段,把所有数据合并成一张所谓的"原有的记录表"。再去做对比。这个事情是很难做的,特别是在数据表多+数据量大的情况下。光附件都有100W+,版主可以想想做这个事情的难度。
至于逻辑删除,这个确实是需要做应用时本身去考虑附件的管理逻辑,(因为活字格本身也不会自动删......)但是逻辑删除的场景与这个需求其实并不牵扯。
这个需求,聊的是,已经产生的冗余及管理的问题,以及活字格附件是否可以一直这样,积累放在一个文件夹中。。。

这个帖子可以先放在这儿,因为还没有真的出啥事儿,所以倒不是一定得有个解决方案,只是先把场景摆出来看看。就怕回头真出啥事儿,再来解决,也不是一时半会能搞定的。多多少少是个隐患。

lovert 发表于 2024-7-25 16:13:45

小萝卜David 发表于 2024-7-25 13:06
大哥说的方法试不了。
我可以写一个工具把附件名取出来存表,但是之后呢?之后还需要做的事情并不是"用sql ...

问题的关键是如何判断有效附件和无效附件

Brian.Zhang 发表于 2024-7-26 14:28:57

{:5_110:}

mfkpie8 发表于 2024-7-27 18:27:12

1.可以使用批处理命令来取出每一个文件 的名称跟创建时间修改时间,然后修改这个清单生成没用的 ,依据这个目录清单来进一步执行 过了多久后删除附件即可
页: [1] 2
查看完整版本: 活字格附件管理