java - 如何在Java中将文件存储在磁盘上并保证它们被删除

标签 java file unix

我需要存储用户上传的文件。我被指示将其存储在磁盘上(而不是尝试任何花哨的东西,例如使用数据库 blob 或缓存系统)。

但从那里开始,我需要弄清楚如何确保文件最终被删除(可能是在上次访问后一个小时)。这是在 Linux 服务器上。那么保证文件被删除的最佳方法是什么?

最佳答案

有很多方法可以做到这一点:

  • 您可以使用 find $path -daystart -mtime +1 -exec rm "{}"\; 运行 cron 作业,该作业会删除一天前创建的所有文件。

  • 每当上传文件时,您都可以在 Java 中列出该文件夹并删除所有太旧的文件

  • 您可以添加Quartz到您的应用程序以结合这两个选项。

由于您使用的是 Linux,因此文件锁定不会成为问题。您始终可以在 Linux 上删除文件,即使进程仍在使用它们(只要进程使用文件,Linux 就会保留该文件,然后将其删除)。

关于java - 如何在Java中将文件存储在磁盘上并保证它们被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721236/

相关文章:

c - 如何在minix操作系统中执行c文件

java - Hibernate "failed to lazily initialize a collection"运行时错误

java - JPanel 只显示一个对象

java - span 标签背景颜色在 swing 应用程序中不起作用

java - 如何修复 Fortify 路径操纵(输入验证和表示、数据流)漏洞

mysql - 网站管理员权限 : Database vs. 文件结构

java - 如何读取共享位置上的文件/文件夹列表?

java - 找不到 Google 健身类(class)

bash - 根据文件的第二列对数据进行排序

linux - 目录/usr/lib 的八进制权限?