Laravel: cancellare i vecchi files in una directory
Quando si importano dati dall'esterno o si devono gestire dei logs ci si ritrova spesso con una mole di files importante e spesso inutile, occupando spazio nel disco.
Con poche righe di codice si possono cancellare i files più vecchi di X giorni (oppure ore, minuti, ...).
Ecco il codice base:
$files = Storage::disk("public")->allFiles("directory-import-files");
foreach ($files as $file) {
$time = Storage::disk('public')->lastModified($file);
$fileModifiedDateTime = Carbon::parse($time);
if (Carbon::now()->gt($fileModifiedDateTime->addDays(5))) {
Storage::disk("public")->delete($file);
}
}
Nell'esempio vengono cancellati i files più vecchi di 5 giorni.
Utilizzando Carbon è possibile specificare anche altri intervalli, ad esempio se volessimo cancellare i files più vecchi di un'ora sarebbe sufficiente modificare in questo modo:
$fileModifiedDateTime->addHour(1)
Commenti