Home
» Come fare
»
Quando il caricamento su ownCloud si blocca al 99%, controlla questi limiti.
Quando il caricamento su ownCloud si blocca al 99%, controlla questi limiti.
Quando la pagina dei file di ownCloud si blocca al 99%, prima di riprovare verifica se il file completo è già presente nella cartella di destinazione. Se manca o è incompleto, chiedi all'amministratore di controllare la quota utente, lo spazio libero nelle directory temporanee di PHP e nei chunk di ownCloud, e infine i limiti di richiesta di PHP e del server web. Un indicatore del 99% non è sufficiente per identificare la causa del problema.
Questa guida pratica illustra le procedure di caricamento tramite l'interfaccia web di ownCloud Server (Classic) 10.16. I caricamenti con Infinite Scale e sincronizzazione desktop utilizzano percorsi server e file di log differenti. Gli esempi seguono la documentazione ufficiale di ownCloud Server 10.16; adattare le impostazioni e i percorsi dei file alla propria implementazione.
Valutazione rapida
Ciò che vedi
Controlla prima
Il file risulta completo dopo l'aggiornamento della cartella
Confronta le sue dimensioni con quelle del file locale e aprilo prima di caricarlo nuovamente.
Solo i file di grandi dimensioni si bloccano o falliscono
Confronta le dimensioni del file con i limiti di PHP, del server web e del proxy; controlla lo spazio di archiviazione temporaneo.
Il caricamento non riesce per un utente o una cartella
Verifica la quota utente, le autorizzazioni delle cartelle e se la destinazione è una memoria esterna.
Il caricamento non riesce per molti utenti
Verifica lo spazio su disco condiviso, i log di PHP/server web e gli eventuali limiti del proxy o dell'hosting.
Esempio di visualizzazione dei file: la riga di caricamento è quasi piena, ma la sola percentuale non indica se il server ha confermato il file.
1. Conferma lo stato del caricamento prima di riprovare
Apri la cartella di destinazione in una seconda scheda o aggiornala dopo che il caricamento si è interrotto. Se il file è presente, confronta la sua dimensione in byte con quella dell'originale locale e aprilo. Un file completo con una barra di avanzamento non aggiornata indica un errore di conferma di completamento o un problema di visualizzazione del browser; non giustifica il caricamento di una seconda copia.
Se il file non è presente o è di dimensioni inferiori, prova a caricare un file di prova di piccole dimensioni nella stessa cartella, quindi prova a caricare l'originale da un altro browser o da una rete diversa, se disponibile. Annota le dimensioni del file, l'utente, la destinazione, l'ora approssimativa e se il test è fallito. Questi confronti aiutano a distinguere un problema relativo a un singolo file o al client da un problema a livello di server. Evita di annullare e riavviare ripetutamente un caricamento di grandi dimensioni mentre il server lo sta ancora elaborando.
2. Verifica la quota, lo spazio temporaneo e le autorizzazioni
Chiedi all'amministratore di ownCloud di verificare la quota dell'utente interessato e i permessi di scrittura della cartella di destinazione. Un limite di quota può impedire il salvataggio di un nuovo file anche quando il browser ha già inviato la maggior parte dei dati. Se la destinazione è un mount esterno, controlla anche lo spazio disponibile e i permessi di scrittura di tale backend.
Sul server, verifica i blocchi liberi e gli inode nella directory dei dati e in ogni directory temporanea pertinente. Un inode è il record del filesystem utilizzato per creare un file; un volume può avere gigabyte liberi ma nessun inode disponibile. Utilizza i percorsi effettivi dalla tua configurazione PHP e ownCloud:
I file PHP upload_tmp_dirdevono essere scrivibili dall'account PHP/web-server. ownCloud dispone anche di un'impostazione per la directory temporanea e, per impostazione predefinita, i caricamenti dei chunk vengono memorizzati nella directory di caricamento dell'utente. Durante l'assemblaggio, ownCloud potrebbe necessitare di spazio temporaneo di dimensioni approssimativamente pari alla dimensione finale del file. L'utente configurato dav.chunk_base_dirpuò modificare questa posizione. Verificare tutti questi volumi, non solo il disco dati principale.
Verifica lo spazio libero su disco e il numero di inode sui filesystem dei dati, dei file temporanei di PHP e del caricamento dei chunk.
3. Associa i limiti di caricamento e i timeout al file
Se i file di piccole dimensioni funzionano ma un file più grande no, confronta le sue dimensioni con le impostazioni web-PHP effettive: upload_max_filesizee post_max_size. PHP richiede post_max_sizeche sia più grande di upload_max_filesize. Controlla la configurazione PHP utilizzata dal server web o da PHP-FPM; la configurazione PHP da riga di comando può essere diversa. Nelle configurazioni PHP-FPM, ownCloud fa notare che le impostazioni PHP appartengono a .user.inio alla configurazione FPM, non solo a .htaccess.
Verifica anche max_input_timequando i caricamenti richiedono molto tempo e se i log segnalano un timeout durante l'esecuzione di PHP. Imposta dei limiti in base al carico di lavoro previsto, anziché copiare un valore di esempio; riavvia o ricarica PHP e il server web dopo aver modificato la configurazione. Consulta la documentazione di ownCloud sulla configurazione del caricamento di file di grandi dimensioni e il riferimento alle direttive di caricamento di PHP .
Confronta i limiti di caricamento e i timeout di PHP con le dimensioni del file interessato e la durata del caricamento.
Controlla quindi ogni livello HTTP davanti a PHP. Nginx client_max_body_sizerifiuta i corpi delle richieste di dimensioni eccessive con HTTP 413; imposta un valore sufficientemente alto per la dimensione della richiesta utilizzata dal tuo percorso di caricamento. Anche Apache LimitRequestBodypuò mod_reqtimeoutlimitare i caricamenti. ownCloud avverte specificamente che i proxy inversi, Cloudflare, i limiti di I/O dell'hosting e le impostazioni di timeout delle richieste di Apache possono influire sui caricamenti di grandi dimensioni. Modifica solo il livello implicato dai log ed evita di disabilitare i moduli di sicurezza a livello globale come prima soluzione. Consulta la documentazione ufficiale di Nginx relativa al corpo della richiesta .
4. Utilizzare i log per individuare il livello difettoso
Riproduci il problema una volta, annotando l'ora, quindi controlla il log di ownCloud e il log degli errori del server web o del proxy per quello stesso minuto. Il log di ownCloud si trova solitamente nella directory dei dati configurata; il percorso effettivo può essere sovrascritto in config.php. Cerca messaggi relativi a quote, permessi, file temporanei, blocchi, dimensioni della richiesta o timeout. Se la richiesta non compare mai nel log di ownCloud, esamina prima il proxy o il server web.
tail -n 100 /path/to/owncloud.log
Sostituisci il segnaposto con il percorso configurato nella tua installazione. Il comando visualizza solo le righe di log più recenti; non modifica i dati del server. Evita di pubblicare log non elaborati senza rimuovere nomi utente, percorsi dei file, indirizzi IP e token. ownCloud spiega la posizione dei file di log nella sua documentazione di debug .
Esamina i log di ownCloud e del server web relativi al momento del caricamento non riuscito; il percorso dipende dalla configurazione del server.
Verifica la correzione
Carica un file di piccole dimensioni, quindi riprova a caricare il file interessato.
Verificare che la copia di destinazione abbia le dimensioni previste e si apra correttamente.
Verifica che al momento del caricamento non si verifichino errori relativi a quote, spazio di archiviazione, HTTP 413, autorizzazioni o timeout.
Se il problema persiste, comunica all'amministratore le dimensioni del file, la destinazione, la data e l'ora e la relativa voce di registro, in modo che possa identificare il livello che ha bloccato la richiesta.
Non aumentare tutti i limiti né disattivare contemporaneamente le protezioni delle richieste. Una modifica mirata, seguita da un singolo tentativo controllato, semplifica l'individuazione della causa e mantiene intatta la restante configurazione del server.