Next Cloud Upload Problem?

1 Antwort

  • Falls du die files_antivirus App benutzt, deaktivieren und nochmal probieren. Fehler weg->AV falsch konfiguriert
  • Platte mit dem Datenordner voll ?
  • Platte, wo PHP seine temporären Dateien anlegt, voll (tmp_dir oder upload_tmp_dir in der php.ini oder einer der inkludierten Dateien) ?
  • Falls du irgendwelche Reverse Proxy Sachen machst, geht da evtl. was schief

Nextcloud vergleicht da den Header Filesize, den der Client mitsendet, mit der Datenmenge, die wirklich angekommen ist. Wenn das nicht übereinstimmt, kommt der Fehler. Der kommt also immer, wenn auf Weg durchs Netz, Webserver, PHP, etc. was verloren geht, Nextcloud bekommt aber nicht mit, warum (außer du hast parallel andere Fehler im Nextcloud-Log. loglevel in der Nextcloud-Config auf debug stellen und dann nochmal versuchen und ins nextcloud.log schauen könnte daher auch lehrreich sein).

Woher ich das weiß:Studium / Ausbildung – Informatiker

skyzero823 
Fragesteller
 06.04.2022, 21:35

Die festplatte kann nicht voll sein da ich es gerade erst aufgesetzt habe und die festplatte 1 Terabyte groß ist diese Antiviren App nutze ich nicht und das einzigste Problem ist dass ich nichts hochladen kann außer textdokumente und Ordner die ich hinzufügen kann

0
iQa1x  06.04.2022, 21:39
@skyzero823

Linux ? Schaue mal, ob eines der tmp-Verzeichnisse evtl. auf einer Ramdisk gelandet ist.. also wo zeigt das hin, sagt da ein mount irgendwas von tmpfs für den Ordner... aus der Ferne nist das schlecht zu analysieren ;)

Für ein mkdir braucht der den temporären Ordner nicht, nur beim Upload. Und wenn der Upload kleiner Dateien geht kann es eigentlich nur sowas sein.

In der nextcloud config.php gibts evtl. auch noch "tempdirectory"...

0
skyzero823 
Fragesteller
 06.04.2022, 21:53
@iQa1x

In der Protokollierung steht wenn ich eine Datei hochlade: Saber/DAV/Exception/BadRequest und von der App PHP: Error: fread(): Unable to create temporary file, Check permissions in temporary files directory. at

/var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php#55

0
iQa1x  06.04.2022, 21:59
@skyzero823

Ok, Volltreffer :) Er kann keine temporäre Datei anlegen. Entweder eine der tmp Variablen zeigt irgendwohin, wo er nicht schreiben darf (Nutzer www-data (bei Debian) braucht da Schreibrechte in dem Verzeichnis), oder das tmp liegt halt irgendwo, wo kein Platz ist, also auf einer Ram-Disk, oder aber das in der Variable angegebene Verzeichnis existiert überhaupt nicht. Es bleibt dir leider nur, diese ganzen erwähnten tmp-Variablen durchzuschauen (php.ini, config.php, evtl. sogar in der Webserver-Konfiguration), um rauszufinden, wo der schreiben will. Und da entweder passende Rechte zu geben, oder die Variable umzusetzen, so dass da ein Verzeichnis drin steht, wo er schreiben darf.

1
iQa1x  06.04.2022, 22:12
@skyzero823

PS: Wo der hinschreiben will bekommst du ggf. in dem Stacktrace raus, wenn du die Logmeldungen über den Pfeil rechts aufklappst.Bin mir aber nicht sicher, ob er das mitprotokolliert.

0
franzhartwig  06.04.2022, 22:35
@iQa1x

Nextcloud schreibt die temporäre Datei per Default in /tmp. Da muss www-data reinschreiben können und es muss genügend Platz sein.

In der config.php kannst Du das temporäre Verzeichnis auch setzen:

'tempdirectory' => '/tmp/nextcloudtemp',

Ggf. muss in der /var/www/nextcloud/.user.ini eingetragen werden:

upload_tmp_dir = /tmp/nextcloudtemp
1
iQa1x  06.04.2022, 22:59
@franzhartwig

Ok, habe nachgeschaut: Nextcloud sucht in der folgenden Reihenfolge und nimmt das erste, was gesetzt ist und wo er drin schreiben kann:

  • config.php tempdirectory
  • php Einstellung upload_tmp_dir
  • Umgebungsvariablen TMP, TEMP, TMPDIR
  • php get_sys_temp_dir()

Wenn nichts davon passt versucht er sein eigenes Installationsverzeichnis, geht das auch nicht, gibt es eine Exception.

Das /tmp (bzw. upload_tmp_dir leer) ist meist Standard, aber ich habe auch schon PHP Pakete gesehen, die das (oder sys_temp_dir) in der Default-Konfiguration umgesetzt haben.

1