我需要存储用户上传的文件。我被指示将其存储在磁盘上(而不是尝试任何花哨的东西,例如使用数据库 blob 或缓存系统)。
但从那里开始,我需要弄清楚如何确保文件最终被删除(可能是在上次访问后一个小时)。这是在 Linux 服务器上。那么保证文件被删除的最佳方法是什么?
最佳答案
有很多方法可以做到这一点:
您可以使用
find $path -daystart -mtime +1 -exec rm "{}"\;
运行 cron 作业,该作业会删除一天前创建的所有文件。每当上传文件时,您都可以在 Java 中列出该文件夹并删除所有太旧的文件
您可以添加Quartz到您的应用程序以结合这两个选项。
由于您使用的是 Linux,因此文件锁定不会成为问题。您始终可以在 Linux 上删除文件,即使进程仍在使用它们(只要进程使用文件,Linux 就会保留该文件,然后将其删除)。
关于java - 如何在Java中将文件存储在磁盘上并保证它们被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721236/