Download?????????? ??????? ?? ?????? Quota ??? ??????? ??????????????
???? ? ?????? ?????????? ??????? ??? ?? Ascoos OS ?????? ?? ????????? ????? ?????? ??? ???? ??????, ?? ??????? ?? ??????? quota, ?? ?????????? ???????? ??? ?? ???????????? ??????? ?? ??????????.
??????
-
?????????? ??????? ??????????? ??? 30 ??????
-
??????? quota ???? ??? ??????????
-
????????? ????????? (?.?. ???????? ???????, ???????? quota, ?????????? ????????)
-
??????? ??????? ???????????? ???????
-
?????????? ???????? ?? JSON
?????? ??????? ??? Ascoos OS
-
TFilesHandler
?????????? ??????? ??? ???????, ???????, ???????????, ??????? ?? ??????
-
TEventHandler
????????? ??? ???????????? ????????? ?? ?????????? logging
-
TArrayAnalysisHandler
??????? ??????????? ????????? ??? ?????????? ??????????? ????????
???? ???????
? ?????? ??????????? ?? ??? ?????? PHP:
- quota_file_cleaner.php
???????????? ??? ?? ??????: ????????? ???????, logging, quota check ??? ?????????? ????????.
??????????????
-
PHP ? 8.2
-
????????????? ?? Ascoos OS ? ??
AWES 26
??? ?????????
-
????????? ?? ????????? ??? logging ??? ?????? ??????????.
-
??????????????? ?? handlers: `TFilesHandler`, `TEventHandler`, `TArrayAnalysisHandler`.
-
????????????? ???????? ??? logging.
-
????????????? ? ??????? ?????????? (?? ??? ???????).
-
????????? ?? ???? ?????????? ?? quota.
-
????? ??????? ? ???????? ??????? ??????????? ??? 30 ??????.
-
????????????? ?? ??????????? ?????? ??? ?? ?????? ????.
-
????????????? ?????????? ???????.
-
???????????? ? ??????? ?? JSON.
-
??????????? ?? ??????????.
?????????? ??????
$files = new TFilesHandler([], $properties['file']);
$events = new TEventHandler([], $properties);
$analysis = new TArrayAnalysisHandler([], $properties);
$events->register('cleaner', 'file.deleted', fn($file) => $events->logger->log("Deleted file: $file"));
$events->register('cleaner', 'quota.exceeded', fn() => $events->logger->log("Quota exceeded before cleanup"));
$events->register('cleaner', 'report.generated', fn($path) => $events->logger->log("Report saved: $path"));
if ($files->isQuotaExceeded($properties['file']['baseDir'])) {
$events->trigger('cleaner', 'quota.exceeded');
}
foreach ($files->listFilesAndFolders($properties['file']['baseDir']) as $file) {
// ... ???????? ??????? ??? logging
}
$analysis->setArray($deletedSizes);
$stats = $analysis->generateStatisticsReport();
$report = [
'deleted_files' => $deletedFiles,
'statistics' => $stats
];
$files->writeToFileWithCheck(json_encode($report, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), $reportPath);
??????????? ??????????
{
"deleted_files": ["temp1.log", "old_cache.tmp", "debug_2023.txt"],
"statistics": {
"count": 3,
"total_size": 124830,
"average_size": 41610,
"min_size": 10240,
"max_size": 92150
}
}
?????
??????????
???????? ?? ??????????? ?? ?????? ??? ????????? ????? ????? ???????, ??????????? ??????????? ? custom ???????. ????? ?? CONTRIBUTING.md ??? ???????.
????? ??????
???? ? ?????? ?????????? ??? ??? Ascoos General License (AGL). ????? ?? LICENSE.md.
|