自己的服务器上存放网站上传的一些文件和图片,如何管理比较好??

如题,因为有些文件可能上传了但是并没有使用到,总不能一直占着空间,想到的就是开个线程定时给他清理一波,有没有类似的场景或者解决方案能够交流学习一下~

(1)不建议在你的web项目中开线程去清理,而是应该单独一个进程,这样可以更稳定可靠。
并且可以在夜间或者低峰的时候清理,因为IO操作会拖累服务器的响应性能。
(2)可以判断文件的最后访问时间。并且删除,给你一段代码参考


public void traverseFolder2(String path) {

        File file = new File(path);
        if (file.exists()) {
            File[] files = file.listFiles();
            if (files.length == 0) {
                System.out.println("文件夹是空的!");
                return;
            } else {
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        traverseFolder2(file2.getAbsolutePath());
                    } else {
                        long time = file2.lastModified(); //得到最后访问时间
                                                long currtime = System.currentTimeMillis();
                                                if (currtime - time > 30 * 24 * 3600 * 1000) //超过1年
                                                 file.delete();
                    }
                }
            }
        } 
    }

(3)推荐使用临时文件和临时目录,这样操作系统的文件清理就可以解决这个问题,不需要代码。

之前遇到过一个场景,文件上传的时候用户可以设置文件的过期时间,我们在文件的元数据中设置过期时间,同时我们每天有一个定时任务清理过期文件。

写个程序,对所有文件进行自动或手动的遍历,超过一定日期未使用的文件进行删除