@@ -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