Hello everyone !
I can’t get nextcloud client to work (android and desktop client on linux). I’m running Nextcloud 17 with apache2 behind a reverse proxy. i check the log and i get this error :
[webdav] Fatal: Sabre\DAV\Exception\BadRequest: Expected filesize of 5262585 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 528881 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side. at <<closure>>
0. /var/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php line 156
OCA\DAV\Connector\Sabre\File->put(null)
1. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 1096
OCA\DAV\Connector\Sabre\Directory->createFile("IMG_20191005_123622.jpg", null)
2. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 525
Sabre\DAV\Server->createFile("InstantUpload/C ... g", null, null)
3. <<closure>>
Sabre\DAV\CorePlugin->httpPut(Sabre\HTTP\Reque ... "}, Sabre\HTTP\Response {})
4. /var/www/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php line 105
undefinedundefinedcall_user_func_array([Sabre\DAV\CorePlugin {},"httpPut"], [Sabre\HTTP\Requ ... }])
5. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 479
Sabre\Event\EventEmitter->emit("method:PUT", [Sabre\HTTP\Requ ... }])
6. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 254
Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Reque ... "}, Sabre\HTTP\Response {})
7. /var/www/nextcloud/apps/dav/appinfo/v1/webdav.php line 80
Sabre\DAV\Server->exec()
8. /var/www/nextcloud/remote.php line 163
undefinedundefinedrequire_once("/var/www/nextcl ... p")
PUT /remote.php/webdav/InstantUpload/Camera/IMG_20191005_123622.jpg
from xx.xx.XX.xx by user at 2019-11-28T15:09:10+00:00
My relevant files :
Apache2 vhost
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName cloud.domain.tld
<Directory /var/www/nextcloud/>
Require all granted
Options FollowSymlinks MultiViews
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
<?php
$CONFIG = array (
'passwordsalt' => 'xxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.0.xx',
2 => 'cloud.domain.tld',
),
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
'overwriteprotocol' => 'https',
'overwritehost' => 'cloud.domain.tld',
'overwrite.cli.url' => 'https://cloud.domain.tld',
'overwritecondaddr' => '^192\.168\.0\.xx$',
'overwritewebroot' => '',
'datadirectory' => '/mnt/data',
'dbtype' => 'mysql',
'version' => '17.0.1.1',
'trusted_proxies' =>
array (
0 => '192.168.0.xx',
),
'dbname' => 'nextcloud',
'dbhost' => '192.168.0.xx:3306',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'xxxxxxxxxxxxx',
'dbpassword' => 'xxxxxxxxxxxxx',
'instanceid' => 'xxxxxxxxxxxxx',
'installed' => true,
'maintenance' => false,
);
nginx conf :
server {
server_name cloud.domain.tld;
location / {
proxy_pass http://192.168.0.xx;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Authorization "";
proxy_read_timeout 86400;
client_max_body_size 5G;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
proxy_redirect http:// $scheme://;
access_log /var/log/nginx/nextcloud.access.log;
error_log /var/log/nginx/nextcloud.error.log;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/cloud.cqlb.me-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/cloud.cqlb.me-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = cloud.cqlb.me) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name cloud.domain.tld;
listen 80;
return 404; # managed by Certbot
}