比如富文本这样的功能,或者一些存储图片的字段。当执行编辑操作的时候,有时候数据库中新图片会替代旧图片(旧图片链接名称在数据库中不存在了),但旧图片的文件还存在在硬盘中。这种已经没用的图片一般如何处理?我想到的方案:方案1:在编辑的时候就把没用的图片一同处理掉,但这样会增加很多代码量,因为很多图片的存储结构不同,需要在各个功能代码处写专门的处理函数。方案2:定期处理。扫描图片在各个表中是否用到,没有用到就删除。但这样做的话,如果增加了新的功能,还要去添加"要扫描的表和字段",遗漏的话会造成误删。方案3:不处理。冗余图片不会对网站产生大的影响(猜测)。求解答。
2 回答

跃然一笑
TA贡献1826条经验 获得超6个赞
建一个图片文件表:createtablepic(idint,pathvarchar(256),md5varchar(32),sizeint,refer_countint,)refer_count为引用计数,多少文章里用到了,就是多少,文章修改时,先减少再增加,少到为零就可以删了。用md5做摘要,可以把重复上传的图版合二为一。size和可以与用户结合进行配额限制,防止被恶意使用。

蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
微博应该是不处理的,所以以前才能有微博图床这种东西(现在是防盗链用不了了)而且存储成本相比cpu、内存、带宽、流量是便宜得多的多,一般应该都不处理吧建图片文件表倒也是个解决方案,就是怕服务崩溃后可能导致表里的图片计数和实际对应不上,回头把不该删的图给删了就不好了
添加回答
举报
0/150
提交
取消