Home
» AMMINISTRAZIONE DI RETE
»
Come risolvere il problema del blocco del caricamento file di ownCloud al 99%: guida pratica alla risoluzione dei problemi
Come risolvere il problema del blocco del caricamento file di ownCloud al 99%: guida pratica alla risoluzione dei problemi
Un caricamento su ownCloud che raggiunge il 99% e poi sembra bloccarsi di solito non si risolve riavviando ripetutamente il caricamento. A quel punto, il browser potrebbe aver già trasferito la maggior parte o la totalità del file mentre il server sta ancora completando operazioni come la ricezione dell'ultimo blocco, l'assemblaggio dei blocchi, lo spostamento del file completato nella sua destinazione, l'aggiornamento dei metadati o il rilascio dei blocchi. La sola percentuale non identifica la causa, quindi l'approccio più rapido è quello di controllare le prove lato server in un ordine prestabilito.
Questa guida utilizza la documentazione di amministrazione di ownCloud Server 11.0 disponibile a ottobre 2026. Gli stessi concetti si applicano a molte implementazioni di ownCloud Classic, ma i percorsi di configurazione e il comportamento di Docker possono differire nelle versioni precedenti. Prima di modificare i limiti, verificare la versione installata e il metodo di implementazione.
Un file può sembrare bloccato al 99% anche se la maggior parte dei dati è già stata trasferita. Considera la percentuale come un sintomo, poi verifica le prove lato server.
Lista di controllo per una diagnosi rapida
Cosa controllare
Perché è importante
Indizio forte
log di ownCloud, PHP e del server web
L'errore potrebbe verificarsi dopo che il browser ha terminato l'invio dei dati.
Timeout, problemi di archiviazione, WebDAV, blocco, errore 5xx o errore di autorizzazione durante il caricamento.
Spazio libero temporaneo e nella directory di caricamento
I caricamenti suddivisi in blocchi necessitano di spazio di archiviazione temporaneo prima della finalizzazione.
I file di grandi dimensioni non vengono elaborati correttamente, mentre quelli di piccole dimensioni sì, oppure il file system è quasi pieno.
Quota utente e spazio di archiviazione di destinazione
Il file finale necessita ancora di spazio nella sua destinazione.
L'errore si verifica solo per un utente, una cartella o una destinazione di archiviazione esterna.
Limiti di caricamento e tempo per PHP
Le richieste non suddivise in blocchi e le richieste di supporto possono essere rifiutate o scadere per timeout.
Gli errori possono riguardare le dimensioni della richiesta, il tempo di esecuzione, il tempo di input o i file caricati temporaneamente.
durata della sessione
Una sessione che scade prima del completamento di un caricamento di lunga durata può interromperne il completamento.
I problemi riscontrati sono correlati alla durata del caricamento piuttosto che al tipo di file.
Proxy inverso, CDN o bilanciatore di carico
Un componente a monte può imporre un proprio limite di dimensione del corpo o di timeout.
L'accesso diretto funziona, ma il nome host pubblico tramite proxy non funziona.
Blocco dei file transazionali
ownCloud blocca i file durante l'esecuzione delle operazioni sui file.
I log contengono errori di blocco, soprattutto sotto carico o su sistemi di archiviazione clusterizzati.
1. Riproduci il problema una volta, quindi controlla immediatamente i log.
Esegui un caricamento controllato con un file che riproduca in modo affidabile il problema e annota l'ora esatta. Quindi esamina il log di ownCloud, il log di PHP e il log degli errori del server web intorno a quell'orario. Non apportare prima diverse modifiche alla configurazione; in questo modo sarà più difficile capire quale livello ha effettivamente causato l'errore.
La documentazione ufficiale di ownCloud per la risoluzione dei problemi raccomanda esplicitamente di controllare prima i log di PHP, Apache e ownCloud. Nella distribuzione Docker standard, ownCloud documenta che l'output di Apache e PHP viene instradato tramite stdout/stderr del container e suggerisce di seguire i log del container con docker compose logs owncloud -f.
La visualizzazione del registro di amministrazione è un punto di partenza per raccogliere prove prima di modificare i limiti di caricamento.
È possibile ottenere il registro di ownCloud anche dall'interfaccia di amministrazione. Il registro di ownCloud e la guida alla configurazione documentano il percorso attraverso Impostazioni > Amministrazione > Generale e offrono occ configreport:generateun'opzione per ottenere un report di configurazione più completo quando necessario.
Quali messaggi di log dovresti cercare?
Concentrati sul primo errore associato alla richiesta non riuscita, non su ogni avviso che lo segue. Le categorie utili includono timeout delle richieste, spazio di archiviazione insufficiente, impossibilità di creare o rinominare un file temporaneo, errori di autorizzazione, eccezioni WebDAV, risposte HTTP 413/502/504 e errori di blocco dei file. Se imposti temporaneamente il livello di registrazione di ownCloud su DEBUG, riportalo al livello normale in seguito; ownCloud avverte che una registrazione dettagliata può influire sulle prestazioni del server. Consulta la documentazione ufficiale sulla configurazione della registrazione .
Leggete le voci del registro a partire dall'ora esatta in cui si è verificato l'errore di caricamento. I messaggi mostrati qui sono a scopo illustrativo; per la diagnosi, consultate il registro effettivo del vostro server.
2. Verificare lo spazio libero sia nelle aree di stoccaggio temporanee che in quella definitiva.
Questo è uno dei controlli più importanti per un blocco del 99%. ownCloud Server 11.0 spiega che i caricamenti possono utilizzare più di un'area temporanea. La directory temporanea di caricamento PHP deve avere spazio per i blocchi attivi, mentre la directory di caricamento utente raccoglie i blocchi di un file fino al completamento del caricamento.
Secondo la documentazione di ownCloud relativa al caricamento di file di grandi dimensioni , lo spazio temporaneo PHP dovrebbe essere pianificato approssimativamente come il numero di caricamenti simultanei moltiplicato per la dimensione dei blocchi. Ancora più importante, per un singolo file di grandi dimensioni, la directory di caricamento dell'utente necessita temporaneamente di spazio paragonabile alla dimensione finale del file, poiché contiene i blocchi fino al completamento dell'assemblaggio. Una volta terminato il caricamento, ownCloud scrive i blocchi nella destinazione finale e li rimuove.
Verifica lo spazio libero sui file system che contengono la directory dei dati di ownCloud, la directory temporanea di PHP e qualsiasi directory dedicata al caricamento dei chunk.
Controlla il filesystem che contiene la directory dei dati, la directory temporanea di PHP e qualsiasi posizione configurata tramite OWNCLOUD_DAV_CHUNK_BASE_DIR. Verifica anche la destinazione effettiva, soprattutto se la destinazione è una memoria esterna. Un server può avere molto spazio libero su /mentre un volume di dati separato è pieno.
Non spostare manualmente i file all'interno o all'esterno della directory dati di ownCloud per "completare" il caricamento. ownCloud avverte che la sua directory dati è esclusiva dell'applicazione; modifiche dirette possono causare incongruenze di sincronizzazione e nel database.
3. Confermare la quota prima di aumentare i limiti tecnici
Una quota utente può bloccare un file finale di grandi dimensioni anche quando l'area di staging per il caricamento ha spazio sufficiente. Verifica la quota dell'utente interessato e, se pertinente, la capacità e le autorizzazioni di un'unità di archiviazione esterna. Un test utile consiste nel caricare lo stesso file su un altro account o destinazione con spazio chiaramente sufficiente. Se l'errore riguarda l'utente o la cartella anziché il file, la causa più probabile è la quota o i criteri di archiviazione.
4. Rivedi le impostazioni di caricamento di PHP e ownCloud
Se i log indicano limiti di dimensione o di esecuzione delle richieste, è consigliabile rivedere le impostazioni PHP effettive anziché presumere che i valori in un php.inifile casuale siano attivi. Le direttive comuni includono post_max_size, upload_max_filesize, upload_tmp_dir, max_input_time, max_execution_time, e memory_limit.
I limiti PHP dovrebbero essere modificati solo quando i log o la configurazione effettiva indicano che stanno limitando il caricamento. I valori visualizzati qui sono esempi, non raccomandazioni universali.
Per la configurazione supportata di ownCloud Server 11.0 in ambiente Docker, la documentazione mappa questi elementi alle seguenti variabili d'ambiente: OWNCLOUD_MAX_UPLOAD, OWNCLOUD_TEMP_DIRECTORY, OWNCLOUD_MAX_INPUT_TIME, OWNCLOUD_MAX_EXECUTION_TIME, e OWNCLOUD_MEMORY_LIMIT. Questo è importante perché ownCloud afferma che le implementazioni che utilizzano la sua configurazione Docker dovrebbero utilizzare le variabili d'ambiente fornite anziché basarsi su .htaccessmodelli PHP o di personalizzazione meno recenti.
Nelle implementazioni Docker, mantieni le impostazioni relative al caricamento nella configurazione delle variabili d'ambiente supportate e verifica che lo spazio di archiviazione temporaneo montato abbia una capacità sufficiente. I valori mostrati sono a scopo illustrativo.
Non impostare semplicemente ogni limite su un numero estremamente elevato. Un obiettivo migliore è un valore che tenga conto della dimensione massima prevista del file e della connessione legittima più lenta, preservando al contempo le garanzie operative.
5. Verifica la durata della sessione per individuare i caricamenti lenti
ownCloud avverte specificamente che session_lifetimenon deve essere inferiore al tempo di caricamento più lungo previsto. Se lo hai personalizzato, impostalo almeno al numero di secondi richiesto dal caricamento più lento previsto, oppure rimuovi un valore personalizzato non necessario e ripristina il comportamento predefinito supportato.
Vale la pena verificarlo soprattutto quando un file da 500 MB viene completato correttamente, mentre un file di diversi gigabyte continua a non essere completato dopo circa lo stesso lasso di tempo.
6. Testare separatamente il proxy inverso o la CDN
La documentazione di ownCloud relativa ai file di grandi dimensioni segnala che i proxy lato client e servizi come Cloudflare possono limitare i caricamenti. Ciò significa che uno stack ownCloud/PHP perfettamente configurato può comunque fallire perché un altro nodo limita il corpo della richiesta, memorizza in un buffer una richiesta lunga, chiude una connessione inattiva o va in timeout mentre ownCloud elabora il caricamento.
Se la tua architettura consente un test amministrativo sicuro, confronta lo stesso caricamento tramite il normale percorso pubblico e tramite un percorso che bypassa il reverse proxy o la CDN. Se il percorso diretto ha successo, esamina la documentazione ufficiale di tale intermediario per quanto riguarda le dimensioni della richiesta, il timeout di caricamento, il buffering e il comportamento di WebDAV. Non indebolire il TLS né esporre pubblicamente il backend solo per eseguire questo test.
Un proxy inverso o un server web possono imporre un proprio timeout. Utilizzate questa informazione solo come promemoria per esaminare tale livello; i nomi delle direttive e i valori sicuri dipendono dallo stack di server effettivamente in uso.
7. Verificare il blocco dei file quando i caricamenti falliscono durante la finalizzazione
Il blocco transazionale dei file è abilitato per impostazione predefinita e protegge i file da modifiche simultanee. ownCloud documenta che è importante anche quando i caricamenti a blocchi vengono assemblati. Su server sovraccarichi, un problema di blocco potrebbe manifestarsi come un trasferimento completato ma non confermato correttamente.
Prima di modificare questo sottosistema, consultare la documentazione relativa al blocco transazionale dei file . ownCloud consiglia di utilizzare un backend di cache in memoria per il blocco in caso di carichi di lavoro più pesanti, anziché affidarsi al blocco del database. Nelle implementazioni cluster, il blocco Redis condiviso è particolarmente importante perché ogni nodo dell'applicazione deve visualizzare lo stesso stato di blocco.
È documentato anche un caso speciale per i caricamenti molto lunghi verso cartelle pubbliche quando la suddivisione in blocchi non è attiva. ownCloud afferma che i caricamenti che durano più di un'ora potrebbero richiedere un blocco sufficientemente grande OWNCLOUD_FILELOCKING_TTL; altrimenti, la garbage collection di Redis potrebbe rimuovere il blocco acquisito all'inizio dell'operazione. Non modificare questa impostazione a meno che il percorso di caricamento non corrisponda a tale scenario.
8. Ripetere il test in modo metodico dopo ogni modifica.
Dopo ogni modifica lato server, ripetere un file di test noto e registrare il risultato, invece di modificare più livelli contemporaneamente.
Dopo aver corretto un problema identificato, riprova con lo stesso file, account, destinazione, browser e percorso di rete. Quindi verifica tre cose: che l'operazione venga completata, che il file appaia nella destinazione con le dimensioni previste e che i log non contengano un nuovo errore per quella richiesta.
Un utile schema di progressione prevede di iniziare con file di piccole dimensioni, poi con file di medie dimensioni e infine con il file della dimensione che inizialmente ha causato l'errore. Se i file di piccole dimensioni vengono sempre elaborati correttamente, ma gli errori iniziano a verificarsi al di sopra di una dimensione che si ripete costantemente, è opportuno concentrarsi sulla capacità di archiviazione e sui limiti di dimensione. Se gli errori iniziano dopo un intervallo di tempo che si ripete, è necessario concentrarsi sulle sessioni e sui timeout. Se si verificano solo attraverso un determinato hostname o percorso di rete, è opportuno concentrarsi sui proxy e sui bilanciatori di carico.
Cosa non fare
Non continuare a tentare un caricamento di più gigabyte senza controllare i log. I ripetuti tentativi di caricamento falliti consumano tempo e potrebbero occupare temporaneamente spazio di archiviazione.
Non modificare manualmente la directory dei dati di ownCloud. Utilizza ownCloud, WebDAV o gli strumenti di amministrazione supportati.
Non disabilitare il blocco dei file come prima soluzione. Il blocco protegge l'integrità dei dati; diagnostica piuttosto il problema nel backend.
Non dare per scontato che un'impostazione PHP sia efficace solo perché compare in un file di configurazione. Container, PHP-FPM, moduli Apache e diverse posizioni dei file INI possono produrre impostazioni effettive differenti.
Non generare timeout all'infinito. Individua il livello che sta chiudendo la richiesta e imposta un limite adeguato alla velocità di caricamento massima supportata.
Percorso decisionale pratico
Se hai bisogno di una procedura guidata breve, segui questo ordine: riproduci il problema una volta; leggi i log di ownCloud/PHP/server web; controlla lo spazio di archiviazione dati, temporaneo e a blocchi; verifica la quota; conferma le impostazioni di caricamento e tempo effettive; ispeziona la durata della sessione; bypassa o ispeziona il reverse proxy/CDN; infine, indaga sul blocco transazionale. Questo ordine privilegia le prove e i vincoli infrastrutturali con la più alta probabilità prima di apportare modifiche di configurazione rischiose.
Il dettaglio importante è che il "99%" non è di per sé un codice di errore. Indica dove l'utente ha notato il problema, non quale componente lo ha causato. La soluzione affidabile consiste nel confrontare il timestamp del caricamento non riuscito con le informazioni relative a storage, timeout, proxy, sessione o blocco sul server.