如何在我的网络服务器上不断运行我的时间敏感文件删除脚本
Posted
技术标签:
【中文标题】如何在我的网络服务器上不断运行我的时间敏感文件删除脚本【英文标题】:How to run my time sensitive file delete script constantly on my web server 【发布时间】:2019-12-22 10:36:52 【问题描述】:我有一个图片上传网站,我想允许用户选择他们希望文件上传多长时间,使用:
<select>
<option>1 Hour</option>
<option>12 Hours</option>
<option>24 Hours</option>
</select>
<?php
$live_for_seconds = X
?>
//Where X is the <select> option above.
然后,服务器将允许文件在选定的时间段内保持上传,然后再自行删除。
目前,upload.php 会查看上传目录中的每个文件,查看是否已存储 24 小时,然后将其删除。每次有人触发上传之前都会进行此检查。
如何在我的 xampp 服务器上持续运行此检查,而不需要通过文件上传来触发它以节省性能?
如何根据用户选择的选项,如上所示,确保每个文件记住它的上传时间?因此,此检查可以自动删除已过期的文件。
//Check for files stored for longer than 24 hours
foreach (glob($target_dir."*") as $file)
if(time() - filectime($file) > 86400)
unlink($file);
//Proceed to upload file~
86400 秒,即 24 小时将是上面确定的 $live_for_seconds。
提前致谢!
【问题讨论】:
【参考方案1】:你可以在你的服务器上使用 CRON 来运行一个 php 文件来检查是否已经到了删除时间。例如,您可以每 1 小时运行一次 php 文件,以根据您的时间(以秒为单位)检查是否需要删除文件。 克朗
0 */2 * * * /LOCATION_TO_YOUR_PHP_FILE
在您的 PHP 代码中,您可以检查是否已到删除图像的时间。
【讨论】:
以上是关于如何在我的网络服务器上不断运行我的时间敏感文件删除脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的本地网络上为 IoT 运行 Prometheus?
如何使用 apache2 在我的 Linux 网络服务器上设置音频文件的 CORS 访问权限?