Skip to content

Commit 33ba134

Browse files
committed
feat: agiunta controllo disponibilità spazio per backup
1 parent d3d8ad0 commit 33ba134

1 file changed

Lines changed: 15 additions & 11 deletions

File tree

src/Backup.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,14 @@ public static function checkSpace()
422422

423423
// Informazioni di base sui limiti di spazio
424424
$spazio_libero = disk_free_space('.');
425-
if (!empty(setting('Soft quota'))) {
426-
$soft_quota = (float) setting('Soft quota'); // Impostazione in GB
427-
$soft_quota = $soft_quota * (1024 ** 3); // Trasformazione in GB
428-
}
429425

430-
// Informazioni sullo spazio occupato
431-
$spazio_occupato = $spazio_necessario = FileSystem::folderSize(base_dir(), ['htaccess']);
426+
// Calcolo dello spazio necessario per gli allegati (dimensione totale * 2 per garantire margine di sicurezza)
427+
$database = database();
428+
$allegati_size = $database->fetchOne('SELECT COALESCE(SUM(`size`), 0) AS total_size FROM `zz_files`');
429+
$spazio_allegati = $allegati_size['total_size'] * 2; // Raddoppio per garantire spazio sufficiente durante il processo di backup
430+
431+
// Calcolo dello spazio necessario per il backup
432+
$spazio_necessario = FileSystem::folderSize(base_dir(), ['htaccess']);
432433
$cartelle_ignorate = [
433434
self::getDirectory(),
434435
'node_modules',
@@ -439,11 +440,14 @@ public static function checkSpace()
439440
$spazio_necessario -= FileSystem::folderSize($path);
440441
}
441442

442-
// Errori visualizzati
443-
if (isset($soft_quota) && $soft_quota < ($spazio_necessario + $spazio_occupato) * $scarto) {
444-
throw new InvalidArgumentException('Spazio disponibile in esaurimento');
445-
} elseif ($spazio_libero < $spazio_necessario * $scarto) {
446-
throw new InvalidArgumentException('Spazio del server in esaurimento');
443+
// Aggiungi lo spazio necessario per gli allegati allo spazio totale necessario
444+
$spazio_necessario += $spazio_allegati;
445+
446+
// Controllo semplificato: confronto tra spazio disponibile e spazio necessario
447+
if ($spazio_libero < $spazio_necessario * $scarto) {
448+
$spazio_richiesto = FileSystem::formatBytes($spazio_necessario * $scarto);
449+
$spazio_disponibile = FileSystem::formatBytes($spazio_libero);
450+
throw new InvalidArgumentException('Spazio disco insufficiente per eseguire il backup. Richiesti: '.$spazio_richiesto.', Disponibili: '.$spazio_disponibile);
447451
}
448452
}
449453

0 commit comments

Comments
 (0)