Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot upload a file in a webDAV External Storage #35660

Open
davitol opened this issue Jun 25, 2019 · 3 comments
Open

Cannot upload a file in a webDAV External Storage #35660

davitol opened this issue Jun 25, 2019 · 3 comments

Comments

@davitol
Copy link
Contributor

davitol commented Jun 25, 2019

Steps to reproduce

  1. As admin enable external storage

  2. Create a mount point with webDAV option

  3. Check the gauge is green and the files already hosted are available

  4. Try to upload a file into the external storage

Expected behavior

The file is uploaded

Actual behavior

It is not possible to upload a file. A log is spotted in ownCloud log.

{"reqId":"AzA4DyF2jWbh6Eu6uGnF","level":3,"time":"2019-06-25T12:19:27+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"no app in context","method":"PUT","url":"\/remote.php\/dav\/files\/admin\/WebDAV1\/CALENDARIO%20PAGOS%20T7.pdf","message":"Exception: {\"Exception\":\"Sabre\\\\HTTP\\\\ClientHttpException\",\"Message\":\"Bad Request\",\"Code\":400,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Client.php(231): Sabre\\\\HTTP\\\\Client->send(Object(Sabre\\\\HTTP\\\\Request))\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php(259): Sabre\\\\DAV\\\\Client->propFind('http:\\\/\\\/cloud.so...', Array)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php(316): OC\\\\Files\\\\Storage\\\\DAV->propfind('CALENDARIO PAGO...')\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Wrapper.php(222): OC\\\\Files\\\\Storage\\\\DAV->file_exists('CALENDARIO PAGO...')\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Availability.php(240): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Wrapper->file_exists('CALENDARIO PAGO...')\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(891): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Availability->file_exists('CALENDARIO PAGO...')\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(967): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->readFirstBlock('CALENDARIO PAGO...')\\n#7 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(379): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->getHeader('CALENDARIO PAGO...')\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Checksum.php(58): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->fopen('CALENDARIO PAGO...', 'wb')\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Wrapper.php(296): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Checksum->fopen('CALENDARIO PAGO...', 'wb')\\n#10 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php(194): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Wrapper->fopen('CALENDARIO PAGO...', 'wb')\\n#11 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(172): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put(Resource id #17)\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1096): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('CALENDARIO PAGO...', Resource id #17)\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(525): Sabre\\\\DAV\\\\Server->createFile('files\\\/admin\\\/Web...', Resource id #17, NULL)\\n#14 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#15 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#16 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#17 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#18 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Server.php(294): Sabre\\\\DAV\\\\Server->exec()\\n#19 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#20 \\\/var\\\/www\\\/owncloud\\\/remote.php(165): require_once('\\\/var\\\/www\\\/ownclo...')\\n#21 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/http\\\/lib\\\/Client.php\",\"Line\":160}"}
{"reqId":"AzA4DyF2jWbh6Eu6uGnF","level":3,"time":"2019-06-25T12:19:27+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"files_external","method":"PUT","url":"\/remote.php\/dav\/files\/admin\/WebDAV1\/CALENDARIO%20PAGOS%20T7.pdf","message":"Bad Request"}
{"reqId":"AzA4DyF2jWbh6Eu6uGnF","level":3,"time":"2019-06-25T12:19:27+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"no app in context","method":"PUT","url":"\/remote.php\/dav\/files\/admin\/WebDAV1\/CALENDARIO%20PAGOS%20T7.pdf","message":"Exception: {\"Exception\":\"OCP\\\\Files\\\\StorageNotAvailableException\",\"Message\":\"Sabre\\\\HTTP\\\\ClientHttpException: Bad Request\",\"Code\":1,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php(830): OC\\\\Files\\\\Storage\\\\DAV->throwByStatusCode(400, Object(Sabre\\\\HTTP\\\\ClientHttpException), 'CALENDARIO PAGO...')\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php(275): OC\\\\Files\\\\Storage\\\\DAV->convertException(Object(Sabre\\\\HTTP\\\\ClientHttpException), 'CALENDARIO PAGO...')\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php(316): OC\\\\Files\\\\Storage\\\\DAV->propfind('CALENDARIO PAGO...')\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Wrapper.php(222): OC\\\\Files\\\\Storage\\\\DAV->file_exists('CALENDARIO PAGO...')\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Availability.php(240): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Wrapper->file_exists('CALENDARIO PAGO...')\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(891): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Availability->file_exists('CALENDARIO PAGO...')\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(967): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->readFirstBlock('CALENDARIO PAGO...')\\n#7 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Encryption.php(379): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->getHeader('CALENDARIO PAGO...')\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Checksum.php(58): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Encryption->fopen('CALENDARIO PAGO...', 'wb')\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/Wrapper\\\/Wrapper.php(296): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Checksum->fopen('CALENDARIO PAGO...', 'wb')\\n#10 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php(194): OC\\\\Files\\\\Storage\\\\Wrapper\\\\Wrapper->fopen('CALENDARIO PAGO...', 'wb')\\n#11 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(172): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put(Resource id #17)\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1096): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('CALENDARIO PAGO...', Resource id #17)\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(525): Sabre\\\\DAV\\\\Server->createFile('files\\\/admin\\\/Web...', Resource id #17, NULL)\\n#14 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#15 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#16 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#17 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#18 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Server.php(294): Sabre\\\\DAV\\\\Server->exec()\\n#19 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#20 \\\/var\\\/www\\\/owncloud\\\/remote.php(165): require_once('\\\/var\\\/www\\\/ownclo...')\\n#21 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Files\\\/Storage\\\/DAV.php\",\"Line\":871}"}
{"reqId":"AzA4DyF2jWbh6Eu6uGnF","level":3,"time":"2019-06-25T12:19:27+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"files_external","method":"PUT","url":"\/remote.php\/dav\/files\/admin\/WebDAV1\/CALENDARIO%20PAGOS%20T7.pdf","message":"Sabre\\HTTP\\ClientHttpException: Bad Request"}
{"reqId":"AzA4DyF2jWbh6Eu6uGnF","level":4,"time":"2019-06-25T12:19:27+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"webdav","method":"PUT","url":"\/remote.php\/dav\/files\/admin\/WebDAV1\/CALENDARIO%20PAGOS%20T7.pdf","message":"Exception: HTTP\/1.1 503 Service Unavailable: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\ServiceUnavailable\",\"Message\":\"\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1096): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('CALENDARIO PAGO...', Resource id #17)\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(525): Sabre\\\\DAV\\\\Server->createFile('files\\\/admin\\\/Web...', Resource id #17, NULL)\\n#2 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#6 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Server.php(294): Sabre\\\\DAV\\\\Server->exec()\\n#7 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#8 \\\/var\\\/www\\\/owncloud\\\/remote.php(165): require_once('\\\/var\\\/www\\\/ownclo...')\\n#9 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php\",\"Line\":174}"}
{"reqId":"YNRogSWkHV1dwR3gn2WM","level":2,"time":"2019-06-25T14:17:48+00:00","remoteAddr":"172.18.0.1","user":"--","app":"no app in context","method":"GET","url":"\/remote.php\/dav\/public-calendars\/OGFJYXU3L56UI5ZV?export","message":"Node with name 'OGFJYXU3L56UI5ZV' could not be found"}

Reproduced with oC 10.1.1 10.2. and 10.2.1

@owncloud/qa Can someone please check if it is an issue in order to triage (cc @micbar jfyi)

@karakayasemi
Copy link
Contributor

I think this problem is specific for ownCloud WebDAV External storages. Because ownCloud is trying to upload file with .part extension. If external storage is also an ownCloud server, the remote server does not accept upload because .part extension is blacklisted for ownCloud.

I installed two ownCloud server and added one of them as External Storage for the other. When an upload attempted to external storage, external storage server logs are indicating to this line as error reason: https://github.com/owncloud/core/blob/master/lib/private/Files/View.php#L1875

@davitol davitol added this to the QA milestone Jun 28, 2019
@patrickjahns
Copy link
Contributor

This is also seen here #30733

@patrickjahns
Copy link
Contributor

Moving to backlog - not considered for 10.2.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants