比如富文本这样的功能,或者一些存储图片的字段。
当执行编辑操作的时候,有时候数据库中新图片会替代旧图片(旧图片链接名称在数据库中不存在了),但旧图片的文件还存在在硬盘中。
这种已经没用的图片一般如何处理?
我想到的方案:
方案1:在编辑的时候就把没用的图片一同处理掉,但这样会增加很多代码量,因为很多图片的存储结构不同,需要在各个功能代码处写专门的处理函数。
方案2:定期处理。扫描图片在各个表中是否用到,没有用到就删除。但这样做的话,如果增加了新的功能,还要去添加"要扫描的表和字段",遗漏的话会造成误删。
方案3:不处理。冗余图片不会对网站产生大的影响(猜测)。
求解答。
建一个图片文件表:
refer_count 为引用计数,多少文章里用到了,就是多少,文章修改时,先减少再增加,少到为零就可以删了。
用md5做摘要,可以把重复上传的图版合二为一。size和可以与用户结合进行配额限制,防止被恶意使用。