gpt4 book ai didi

laravel - 如何删除超过一小时的公共(public)存储文件?

转载 作者:行者123 更新时间:2023-12-04 07:29:56 25 4
gpt4 key购买 nike

我正在做一个需要从 storage/public/dir_name/ 中删除所有文件的项目。 .示例文件名为 jIK4uh.png .我应该使用 cron 作业来完成这项任务。这是我正在遵循的方法。
应用程序/控制台/命令/ClearPublicStorage.png

class ClearPublicStorageCron extends Command {

protected $signature = 'storage:clear';

public function handle()
{
Log::info("Public storage files cleared!");

// tasks logic here

$this->info('Cron command run successfully');
}
}
应用程序/控制台/Kernel.php
class Kernel extends ConsoleKernel {
protected function schedule(Schedule $schedule)
{
$schedule->command('storage:clear')->hourly();
}
}
然后运行 ​​ php artisan schedule:run现在如何按照这个策略选择所有超过过去一小时的文件并在每小时删除这些文件?或者任何其他有效的想法来做这些事情?
Laravel 版本:7.30

最佳答案

基本思想是使用 storage lastModified约会时间
获取上次修改 datetime从文件

$fileTime=Storage::disk('public')->lastModified('dummy.pdf');

$fileModifiedDateTime=Carbon::parse($fileTime);

if(Carbon::now()->gt($fileModifiedDateTime->addHour())){

//delete file here
}
如果您将文件名存储在数据库中,则可以根据文件上传日期删除
更新
$files = Storage::disk("public")->allFiles("claim-images");

foreach ($files as $file) {
$time = Storage::disk('public')->lastModified($file);
$fileModifiedDateTime = Carbon::parse($time);

if (Carbon::now()->gt($fileModifiedDateTime->addHour(1))) {

Storage::disk("public")->delete($file);
}

//storage symbolic link files not required to delete.Still providing here for you reference

if (File::exists(public_path('storage/' . $file))) {

File::delete(public_path('storage/' . $file));
}
}

关于laravel - 如何删除超过一小时的公共(public)存储文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68001014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com