上传:
如果服务端不存在,添加服务器端文件,同时添加数据库记录,引用计数为0;
如果服务端存在,不添加文件,不添加数据库记录,将已有数据库记录返回给客户端使用。
删除:
不删除服务器端文件,不删除数据库记录。
上传和删除动作都在客户端做引用计数统计,每次上传,引用计数+1,每次删除,引用计数-1,最终保存时,将引用计数的最终值写入数据库,但引用计数不得小于0(小于0的情况不可能发生,如果发生,则程序有BUG)。如果取消保存,引用计数的修改放弃,也不会影响服务端文件。
服务端引用计数为0的文件,可设置生存期,过期的自动删除,通过数据库代理即可做到,也可以通过程序执行。