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

Uploading to shared public upload-only Folder fails: Could not rename part file to final file #8942

Closed
gnunicorn opened this issue Mar 22, 2018 · 31 comments
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap bug feature: filesystem needs info

Comments

@gnunicorn
Copy link

Steps to reproduce

  1. create a folder, share it via link, on upload-only
  2. open the link in a second, private browser session and try to upload any file

Expected behaviour

The file should be uploaded and made available in the directory.

Actual behaviour

The error-message "File could not be uploaded" appears.

Additional Information

It works if I put the sharing on 'upload and edit', but I don't people to be able to edit.

Server configuration detail

Operating system: Linux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64

Webserver: nginx/1.13.7 (fpm-fcgi)

Database: pgsql PostgreSQL 10.3 (Debian 10.3-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

PHP version: 7.1.15
Modules loaded: Core, date, libxml, openssl, pcre, sqlite3, zlib, ctype, curl, dom, fileinfo, filter, ftp, hash, iconv, json, mbstring, SPL, PDO, session, posix, readline, Reflection, standard, SimpleXML, pdo_sqlite, Phar, tokenizer, xml, xmlreader, xmlwriter, mysqlnd, cgi-fcgi, apcu, exif, gd, intl, ldap, mcrypt, memcached, mysqli, pcntl, pdo_mysql, pdo_pgsql, pgsql, redis, zip, Zend OPcache

Nextcloud version: 13.0.1 - 13.0.1.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: docker

Signing status

Array

List of activated apps
Enabled:
 - admin_audit: 1.3.0
 - admin_notifications: 1.0.1
 - announcementcenter: 3.2.1
 - apporder: 0.4.1
 - bruteforcesettings: 1.0.3
 - calendar: 1.6.1
 - caniupdate: 0.1.2
 - comments: 1.3.0
 - contacts: 2.1.2
 - dav: 1.4.6
 - encryption: 2.0.0
 - federatedfilesharing: 1.3.1
 - federation: 1.3.0
 - files: 1.8.0
 - files_frommail: 0.1.0
 - files_markdown: 2.0.4
 - files_pdfviewer: 1.2.0
 - files_sharing: 1.5.0
 - files_texteditor: 2.5.1
 - files_trashbin: 1.3.0
 - files_versions: 1.6.0
 - files_videoplayer: 1.2.0
 - firstrunwizard: 2.2.1
 - groupfolders: 1.2.0
 - issuetemplate: 0.3.0
 - logreader: 2.0.0
 - lookup_server_connector: 1.1.0
 - metadata: 0.6.0
 - nextcloud_announcements: 1.2.0
 - notes: 2.3.2
 - notifications: 2.1.2
 - oauth2: 1.1.0
 - onlyoffice: 1.2.0
 - ownbackup: 17.5.0
 - passman: 2.1.4
 - password_policy: 1.3.0
 - piwik: 0.3.2
 - polls: 0.8.1
 - provisioning_api: 1.3.0
 - serverinfo: 1.3.0
 - sharebymail: 1.3.0
 - survey_client: 1.1.0
 - systemtags: 1.3.0
 - theming: 1.4.1
 - twofactor_backupcodes: 1.2.3
 - updatenotification: 1.3.0
 - workflowengine: 1.3.0
Disabled:
 - activity
 - external
 - files_accesscontrol
 - files_clipboard
 - files_external
 - gallery
 - ldapcontacts
 - ldaporg
 - quota_warning
 - rainloop
 - registration
 - twofactor_totp
 - unsplash
 - user_external
 - user_ldap

Configuration (config/config.php)
{
    "memcache.local": "\\OC\\Memcache\\APCu",
    "apps_paths": [
        {
            "path": "\/var\/www\/html\/apps",
            "url": "\/apps",
            "writable": false
        },
        {
            "path": "\/var\/www\/html\/custom_apps",
            "url": "\/custom_apps",
            "writable": true
        }
    ],
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "wolke.bewegung.jetzt"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "overwrite.cli.url": "https:\/\/wolke.bewegung.jetzt",
    "dbtype": "pgsql",
    "version": "13.0.1.1",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "mail_smtpmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "25",
    "mail_smtptimeout": 30,
    "ldapIgnoreNamingRules": false,
    "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
    "maintenance": false,
    "updater.release.channel": "stable",
    "mail_smtpauth": 1,
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "theme": "",
    "loglevel": 0,
    "updater.secret": "***REMOVED SENSITIVE VALUE***"
}

Are you using external storage, if yes which one: local/smb/sftp/...

Are you using encryption: no

Client configuration

Browser: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0

Operating system: Arch Linux

Logs

Nextcloud logged Error
Insert your Nextcloud log here

Fatal | webdav | Sabre\DAV\Exception: Could not rename part file to final file/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php - line 151:  OCA\DAV\Connector\Sabre\File->put(Resource id #15)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php - line 1096:  OCA\DAV\Connector\Sabre\Directory->createFile('hand-middle.png', Resource id #15)/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 525:  Sabre\DAV\Server->createFile('hand-middle.png', Resource id #15, NULL)[internal function] Sabre\DAV\CorePlugin->httpPut(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))/var/www/html/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105:  call_user_func_array(Array, Array)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php - line 479:  Sabre\Event\EventEmitter->emit('method PUT', Array)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php - line 254:  Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))/var/www/html/apps/dav/appinfo/v1/publicwebdav.php - line 107:  Sabre\DAV\Server->exec()/var/www/html/public.php - line 79:  require_once('/var/www/html/a...'){main} | 2018-03-22T12:25:17+0100
-- | -- | -- | --
Error | webdav | renaming part file to final file failed ($run: true, $renameOkay: false, $fileExists: false) | 2018-03-22T12:25:17+0100


HTTP Response The console tells me the server responds with a Internal Server Error 500: ``` Sabre\DAV\Exception Could not rename part file to final file ```
@nextcloud-bot nextcloud-bot added the stale Ticket or PR with no recent activity label Jun 20, 2018
@MorrisJobke
Copy link
Member

MorrisJobke commented Jun 28, 2018

Could be related to #8978.

@gnunicorn Could you post the entry from the nextcloud.log that contains the mentioned log entries?

Sabre\DAV\Exception: Could not rename part file to final file/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php
 - line 151:  OCA\DAV\Connector\Sabre\File->put(Resource id #15)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php
 - line 1096:  OCA\DAV\Connector\Sabre\Directory->createFile('hand-middle.png', Resource id #15)/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php
 - line 525:  Sabre\DAV\Server->createFile('hand-middle.png', Resource id #15, NULL)[internal function] Sabre\DAV\CorePlugin->httpPut(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))/var/www/html/3rdparty/sabre/event/lib/EventEmitterTrait.php
 - line 105:  call_user_func_array(Array, Array)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php
 - line 479:  Sabre\Event\EventEmitter->emit('method PUT', Array)/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php
 - line 254:  Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))/var/www/html/apps/dav/appinfo/v1/publicwebdav.php
 - line 107:  Sabre\DAV\Server->exec()/var/www/html/public.php
 - line 79:  require_once('/var/www/html/a...'){main}
  | 2018-03-22T12:25:17+0100

@nextcloud-bot nextcloud-bot removed the stale Ticket or PR with no recent activity label Jun 28, 2018
@MorrisJobke
Copy link
Member

Nextcloud version: 13.0.1 - 13.0.1.1

Just noticed that you are not on the latest patch level. We fixed some stuff in 13.0.4. So please upgrade first and then check again. If this still happens we are happy to reopen this ticket here.

@gnunicorn
Copy link
Author

Thanks for taking the time, @MorrisJobke

Just noticed that you are not on the latest patch level.

Well, we were -- back then patch level was 1.1. And we are experiencing that on the latest patch level, too. We are running 13.0.4 now and still see this problem.

If this still happens we are happy to reopen this ticket here.

Please do.

Could be related to #8978.

While I am not sure about the reasons behind #8978, and therefore it could be related, but there is a distinct difference: we are not on SMB here. We are running the drive on ext4 directly linked into the docker container.

Could you post the entry from the nextcloud.log that contains the mentioned log entries?

I can't upload the entire file as it contains sensitive information. However, here are the log entries about the trial I just did:

$ tail -n 100 nextcloud.log  | grep rename
{"reqId":"s6OsSLMlxUoDHb6B5rSR","level":3,"time":"2018-06-28T08:30:49+00:00","remoteAddr":"172.18.0.48","user":"--","app":"webdav","method":"PUT","url":"\/public.php\/webdav\/Screen%20Shot%202018-06-21%20at%2008.48.55.png","message":"renaming part file to final file failed ($run: true, $renameOkay: false, $fileExists: false)","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:59.0) Gecko\/20100101 Firefox\/59.0","version":"13.0.4.0"}
{"reqId":"s6OsSLMlxUoDHb6B5rSR","level":4,"time":"2018-06-28T08:30:49+00:00","remoteAddr":"172.18.0.48","user":"--","app":"webdav","method":"PUT","url":"\/public.php\/webdav\/Screen%20Shot%202018-06-21%20at%2008.48.55.png","message":"Exception: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\",\"Message\":\"Could not rename part file to final file\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/html\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(156): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put(Resource id #15)\\n#1 \\\/var\\\/www\\\/html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1096): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('Screen Shot 201...', Resource id #15)\\n#2 \\\/var\\\/www\\\/html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(529): Sabre\\\\DAV\\\\Server->createFile('Screen Shot 201...', Resource id #15, NULL)\\n#3 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\/var\\\/www\\\/html\\\/3rdparty\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#5 \\\/var\\\/www\\\/html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#6 \\\/var\\\/www\\\/html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#7 \\\/var\\\/www\\\/html\\\/apps\\\/dav\\\/appinfo\\\/v1\\\/publicwebdav.php(107): Sabre\\\\DAV\\\\Server->exec()\\n#8 \\\/var\\\/www\\\/html\\\/public.php(79): require_once('\\\/var\\\/www\\\/html\\\/a...')\\n#9 {main}\",\"File\":\"\\\/var\\\/www\\\/html\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php\",\"Line\":213}","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:59.0) Gecko\/20100101 Firefox\/59.0","version":"13.0.4.0"}

@MorrisJobke
Copy link
Member

Nicely formatted:

{
    "reqId": "s6OsSLMlxUoDHb6B5rSR",
    "level": 3,
    "time": "2018-06-28T08:30:49+00:00",
    "remoteAddr": "172.18.0.48",
    "user": "--",
    "app": "webdav",
    "method": "PUT",
    "url": "/public.php/webdav/Screen%20Shot%202018-06-21%20at%2008.48.55.png",
    "message": "renaming part file to final file failed ($run: true, $renameOkay: false, $fileExists: false)",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0",
    "version": "13.0.4.0"
}
{
    "reqId": "s6OsSLMlxUoDHb6B5rSR",
    "level": 4,
    "time": "2018-06-28T08:30:49+00:00",
    "remoteAddr": "172.18.0.48",
    "user": "--",
    "app": "webdav",
    "method": "PUT",
    "url": "/public.php/webdav/Screen%20Shot%202018-06-21%20at%2008.48.55.png",
    "message": "Exception: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\",\"Message\":\"Could not rename part file to final file\",\"Code\":0,\"Trace\":\"#0 \\/var\\/www\\/html\\/apps\\/dav\\/lib\\/Connector\\/Sabre\\/Directory.php(156): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put(Resource id #15)\\n#1 \\/var\\/www\\/html\\/3rdparty\\/sabre\\/dav\\/lib\\/DAV\\/Server.php(1096): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('Screen Shot 201...', Resource id #15)\\n#2 \\/var\\/www\\/html\\/3rdparty\\/sabre\\/dav\\/lib\\/DAV\\/CorePlugin.php(529): Sabre\\\\DAV\\\\Server->createFile('Screen Shot 201...', Resource id #15, NULL)\\n#3 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\/var\\/www\\/html\\/3rdparty\\/sabre\\/event\\/lib\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#5 \\/var\\/www\\/html\\/3rdparty\\/sabre\\/dav\\/lib\\/DAV\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#6 \\/var\\/www\\/html\\/3rdparty\\/sabre\\/dav\\/lib\\/DAV\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#7 \\/var\\/www\\/html\\/apps\\/dav\\/appinfo\\/v1\\/publicwebdav.php(107): Sabre\\\\DAV\\\\Server->exec()\\n#8 \\/var\\/www\\/html\\/public.php(79): require_once('\\/var\\/www\\/html\\/a...')\\n#9 {main}\",\"File\":\"\\/var\\/www\\/html\\/apps\\/dav\\/lib\\/Connector\\/Sabre\\/File.php\",\"Line\":213}",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0",
    "version": "13.0.4.0"
}

@icewind1991 Any idea what the background of this is?

@scanom
Copy link

scanom commented May 28, 2019

I'm experiencing the same issue, if I set a folder as upload-only the upload fails but as soon as I change the folder to upload and download the issue dissappears.

{
  "reqId":"XO0lJsg0quS21BuGkbs3yAAAAEk",
  "level":3,
  "time":"2019-05-28T12:10:35+00:00",
  "remoteAddr":"xxx.xxx.xxx.xxx",
  "user":"--",
  "app":"webdav",
  "method":"PUT",
  "url":"\/public.php\/webdav\/SmartConsole.exe",
  "message":"renaming part file to final file failed $renameOkay: false, $fileExists: false)",
  "userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/74.0.3729.169 Safari\/537.36",
  "version":"15.0.8.1"
}
{
  "reqId":"XO0lJsg0quS21BuGkbs3yAAAAEk",
  "level":4,
  "time":"2019-05-28T12:10:35+00:00",
  "remoteAddr":"xxx.xxx.xxx.xxx",
  "user":"--",
  "app":"webdav",
  "method":"PUT",
  "url":"\/public.php\/webdav\/SmartConsole.exe",
  "message":{"Exception":"Sabre\\DAV\\Exception","Message":"Could not rename part file to final file","Code":0,"Trace":[{"file":"\/var\/www\/html\/nextcloud\/apps\/dav\/lib\/Connector\/Sabre\/Directory.php","line":156,"function":"put","class":"OCA\\DAV\\Connector\\Sabre\\File","type":"->","args":[null]},{"file":"\/var\/www\/html\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php","line":1096,"function":"createFile","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":["SmartConsole.exe",null]},{"file":"\/var\/www\/html\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/CorePlugin.php","line":525,"function":"createFile","class":"Sabre\\DAV\\Server","type":"->","args":["SmartConsole.exe",null,null]},{"function":"httpPut","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"absoluteUrl":"https:\/\/xxx.yyy.zz\/public.php\/webdav\/SmartConsole.exe","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"\/var\/www\/html\/nextcloud\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php","line":105,"function":"call_user_func_array","args":[[{"__class__":"Sabre\\DAV\\CorePlugin"},"httpPut"],[{"absoluteUrl":"https:\/\/xxx.yyy.zz\/public.php\/webdav\/SmartConsole.exe","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"\/var\/www\/html\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php","line":479,"function":"emit","class":"Sabre\\Event\\EventEmitter","type":"->","args":["method:PUT",[{"absoluteUrl":"https:\/\/xxx.yyy.zz\/public.php\/webdav\/SmartConsole.exe","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"\/var\/www\/html\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php","line":254,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"absoluteUrl":"https:\/\/xxx.yyy.zz\/public.php\/webdav\/SmartConsole.exe","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"\/var\/www\/html\/nextcloud\/apps\/dav\/appinfo\/v1\/publicwebdav.php","line":107,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"\/var\/www\/html\/nextcloud\/public.php","line":79,"args":["\/var\/www\/html\/nextcloud\/apps\/dav\/appinfo\/v1\/publicwebdav.php"],"function":"require_once"}],"File":"\/var\/www\/html\/nextcloud\/apps\/dav\/lib\/Connector\/Sabre\/File.php","Line":255,"CustomMessage":"--"},
  "userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/74.0.3729.169 Safari\/537.36",
  "version":"15.0.8.1"
}

After further investigation the issue exists even using local storage, it's not related to external storage.

@skjnldsv skjnldsv added the 0. Needs triage Pending check for reproducibility or if it fits our roadmap label Jun 12, 2019
@scanom
Copy link

scanom commented Jun 17, 2019

Same thing happennig with NC 16.0.1:

  "reqId":"XQddSYz4Z@zZ3DgO092yTAAAAAY",
  "level":3,
  "time":"2019-06-17T09:28:42+00:00",
  "remoteAddr":"xxx.xxx.xxx.xxx",,
  "user":"--",
  "app":"webdav",
  "method":"PUT",
  "url":"/public.php/webdav/ruta%20expediente%20contratation.txt",
  "message":"renaming part file to final file failed $renameOkay: false, $fileExists: false)",
  "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
  "version":"16.0.1.1",
  "id":"5d075e6970411"
}

{
  "reqId":"XQddSYz4Z@zZ3DgO092yTAAAAAY",
  "level":4,
  "time":"2019-06-17T09:28:42+00:00",
  "remoteAddr":"172.16.32.46",
  "user":"--",
  "app":"webdav",
  "method":"PUT",
  "url":"/public.php/webdav/ruta%20expediente%20contratation.txt",
  "message":{"Exception":"Sabre\\DAV\\Exception","Message":"Could not rename part file to final file","Code":0,"Trace":[{"file":"/var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php","line":156,"function":"put","class":"OCA\\DAV\\Connector\\Sabre\\File","type":"->","args":[null]},{"file":"/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":1096,"function":"createFile","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":["ruta expediente contratation.txt",null]},{"file":"/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":525,"function":"createFile","class":"Sabre\\DAV\\Server","type":"->","args":["ruta expediente contratation.txt",null,null]},{"function":"httpPut","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"absoluteUrl":"https://xxx.yyy.zz/public.php/webdav/ruta%20expediente%20contratation.txt","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php","line":105,"function":"call_user_func_array","args":[[{"__class__":"Sabre\\DAV\\CorePlugin"},"httpPut"],[{"absoluteUrl":"https://xxx.yyy.zz/public.php/webdav/ruta%20expediente%20contratation.txt","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":479,"function":"emit","class":"Sabre\\Event\\EventEmitter","type":"->","args":["method:PUT",[{"absoluteUrl":"https://xxx.yyy.zz/public.php/webdav/ruta%20expediente%20contratation.txt","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":254,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"absoluteUrl":"https://xxx.yyy.zz/public.php/webdav/ruta%20expediente%20contratation.txt","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/nextcloud/apps/dav/appinfo/v1/publicwebdav.php","line":107,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/nextcloud/public.php","line":79,"args":["/var/www/html/nextcloud/apps/dav/appinfo/v1/publicwebdav.php"],"function":"require_once"}],"File":"/var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/File.php","Line":255,"CustomMessage":"--"},
  "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
  "version":"16.0.1.1",
  "id":"5d075e69703ea"
}

@icewind1991
Copy link
Member

Can you try if #15769 fixes the issue

@scanom
Copy link

scanom commented Jun 17, 2019

@icewind1991 Nope, same issue. Tried with two different files: an almost empty plain text file and a big file, same exception. If it helps, as soon as I change the shared folder to read and write permissions the file uploads perfectly fine.

EDIT. And just noticed something curious, the files GET uploaded, just not renamed. If I rename those part files to the original filename they are perfectly fine:

3d95ec1f822a337dc26081ac9570942f.ocTransferId133638204.part
476da0e7e1dc8446215087dc38d8e272.ocTransferId1038867547.part
cab709975c394ec28e26840c0f34bb14.ocTransferId1052319544.part

I found that files after configuring an external storage and setting this 'part_file_in_storage' => false, in config file.

@scanom
Copy link

scanom commented Jun 25, 2019

@icewind1991 I took some time today to debug the issue even more. Finally I managed to upload some files without issues by removing 'part_file_in_storage' => false,, as soon as I remove that option public link with upload-only works. The curious thing is that the issue happens even using internal storage.

@Sugaroverdose
Copy link
Contributor

Sugaroverdose commented Jul 4, 2019

It seems like that adding 'isreadable' condition to @icewind1991 PR does fixes this issue:

change

if (!$view->isCreatable($partFilePath) && $view->isUpdatable($this->path)) {
$needsPartFile = false;
}

from

                       	if (!$view->isCreatable($partFilePath) && $view->isUpdatable($this->path)) {
                               	$needsPartFile = false;
                        }

to

                       	if ((!$view->isCreatable($partFilePath) && $view->isUpdatable($this->path)) || (!$view->isReadable($partFilePath))) {
                               	$needsPartFile = false;
                        }

@scanom
Copy link

scanom commented Jul 5, 2019

@Sugaroverdose Confirmed that adding the condition solves the issue, tested with and without part_file_in_storage

@Sugaroverdose
Copy link
Contributor

@MorrisJobke @icewind1991 could you please review proposed fix?

@kesselb
Copy link
Contributor

kesselb commented Sep 19, 2019

Thank you @Sugaroverdose for digging 👍

@Sugaroverdose
Copy link
Contributor

Sugaroverdose commented Sep 23, 2019

It seems like that !isreadable is always true for some reason(not exactly sure, but i've tried couple of uploads and they didn't create .part files), so every upload to shared folder does not apply 'part file' logic (in my case - it's more desirable solution than no upload at all)

UPD: tested a little bit more and it's definitely disables .part files for url shared folders even with "Allow upload and editing" set, for some reason !$view->isReadable is always true

@rullzer rullzer added this to the Nextcloud 17.0.6 milestone Mar 23, 2020
@kesselb kesselb removed this from the Nextcloud 17.0.6 milestone Apr 6, 2020
@RafalLukawiecki
Copy link

I can confirm that this bug still affects 20.0.9 and 21.0.1 and that the fix described above resolved it for me. @kesselb and @rullzer, is there a reason this fix has not been merged yet? Does it need a PR?

Without the fix it is not possible to upload large files using the browser to a write-only share.

@DRRDietrich
Copy link

DRRDietrich commented Apr 22, 2021

I am using version 21.0.1 and have been affected by this bug (affected all uploads regardless of size for upload-only shares) since April 19th. The problem was reported to me today by a user and was resolved by the patch.

@RafalLukawiecki
Copy link

Is there a PR for this bug?

@thespy7
Copy link

thespy7 commented Apr 23, 2021

I'm also using 21.0.1, and today a user also reported me this problem, and the above patch solved the issue.

@Sugaroverdose
Copy link
Contributor

@RafalLukawiecki don't think so, my solution isn't actually fixes issue cause it disables .part file logic for all uploads to url shared directories instead of disabling it only in case of 'upload only' option.

Most definitely 'isReadable' is not applicable to folder path as well as to nonexistent files, so to fix this properly eighter 'isReadable' should start to check folders for read permission, or there's should be another way to determine that current user have no permissions to access not yet created .part file

@ApolloDS
Copy link

ApolloDS commented May 3, 2021

We're using a Snap install of 20.09 and also have this bug when a folder is set to "File drop".
As a workaround the folder needs to be set to "Allow upload and editing" and it is working again.
For security reasons we need the "File drop" on to this folder.
I hope the fix above wil be soon added to the next version of nextcloud.

@n3storm
Copy link

n3storm commented May 5, 2021

Nextcloud 20.0.9 over Debian with php 7.4
Local filesystem

Newly created folder shared to newly created user.

Sharing folder to user: user cannot upload.
Sharing via link with password same folder, upload works
Same happens if user belongs to no groups or belongs to one group.
Same happens if allow re-share is enabled or disabled


Nextcloud 20.1 over Debian with php 7.4 (same server as above but different instance)
Local filesystem

Sharing folder to user: user can upload.

@doc75
Copy link
Contributor

doc75 commented May 6, 2021

  • NC 20.0.9
  • PHP 7.4
  • docker official image
  • internal storage

It does not work with a share link with or without password.

I can find several error raised for every single upload
{
  "reqId": "Bi6wUQMfKwxUr3E0FmX9",
  "level": 3,
  "time": "2021-05-06T19:41:30+00:00",
  "remoteAddr": "193.32.126.220",
  "user": "--",
  "app": "webdav",
  "method": "PUT",
  "url": "/public.php/webdav/test.png",
  "message": "renaming part file to final file failed $renameOkay: false, $fileExists: false)",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/2019.04 Iridium/2019.04 Safari/537.36 Chrome/73.0.0.0",
  "version": "20.0.9.1"
}
{
  "reqId": "Bi6wUQMfKwxUr3E0FmX9",
  "level": 4,
  "time": "2021-05-06T19:41:30+00:00",
  "remoteAddr": "193.32.126.220",
  "user": "--",
  "app": "webdav",
  "method": "PUT",
  "url": "/public.php/webdav/test.png",
  "message": {
    "Exception": "Sabre\\DAV\\Exception",
    "Message": "Could not rename part file to final file",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
        "line": 156,
        "function": "put",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 1104,
        "function": "createFile",
        "class": "OCA\\DAV\\Connector\\Sabre\\Directory",
        "type": "->",
        "args": [
          "test.png",
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
        "line": 527,
        "function": "createFile",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          "test.png",
          null,
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
        "line": 89,
        "function": "httpPut",
        "class": "Sabre\\DAV\\CorePlugin",
        "type": "->",
        "args": [
          {
            "__class__": "Sabre\\HTTP\\Request"
          },
          {
            "__class__": "Sabre\\HTTP\\Response"
          }
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 474,
        "function": "emit",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          "method:PUT",
          [
            {
              "__class__": "Sabre\\HTTP\\Request"
            },
            {
              "__class__": "Sabre\\HTTP\\Response"
            }
          ]
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 251,
        "function": "invokeMethod",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          {
            "__class__": "Sabre\\HTTP\\Request"
          },
          {
            "__class__": "Sabre\\HTTP\\Response"
          }
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 319,
        "function": "start",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php",
        "line": 113,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/public.php",
        "line": 81,
        "args": [
          "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
    "Line": 296,
    "CustomMessage": "--"
  },
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/2019.04 Iridium/2019.04 Safari/537.36 Chrome/73.0.0.0",
  "version": "20.0.9.1"
}
{
  "reqId": "Bi6wUQMfKwxUr3E0FmX9",
  "level": 3,
  "time": "2021-05-06T19:41:30+00:00",
  "remoteAddr": "193.32.126.220",
  "user": "--",
  "app": "PHP",
  "method": "PUT",
  "url": "/public.php/webdav/test.png",
  "message": {
    "Exception": "Error",
    "Message": "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132) at /var/www/html/apps/dav/lib/Connector/Sabre/File.php#691",
    "Code": 0,
    "Trace": [
      {
        "function": "onError",
        "class": "OC\\Log\\ErrorHandler",
        "type": "::",
        "args": [
          2,
          "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132)",
          "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
          691,
          {
            "string": "X-Hash-SHA256: 369f6596d1a3bc1fe81d8d25a00a77de8fe34a61c4c4158087ddb4a6ae5efbf9"
          }
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 691,
        "function": "header",
        "args": [
          "X-Hash-SHA256: 369f6596d1a3bc1fe81d8d25a00a77de8fe34a61c4c4158087ddb4a6ae5efbf9"
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 195,
        "function": "header",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "X-Hash-SHA256: 369f6596d1a3bc1fe81d8d25a00a77de8fe34a61c4c4158087ddb4a6ae5efbf9"
        ]
      },
      {
        "function": "OCA\\DAV\\Connector\\Sabre\\{closure}",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 71,
        "function": "call_user_func",
        "args": [
          {
            "__class__": "Closure"
          },
          "*** sensitive parameter replaced ***"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 319,
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php",
        "line": 113,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/public.php",
        "line": 81,
        "args": [
          "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/lib/private/Log/ErrorHandler.php",
    "Line": 91,
    "CustomMessage": "--"
  },
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/2019.04 Iridium/2019.04 Safari/537.36 Chrome/73.0.0.0",
  "version": "20.0.9.1"
}
{
  "reqId": "Bi6wUQMfKwxUr3E0FmX9",
  "level": 3,
  "time": "2021-05-06T19:41:30+00:00",
  "remoteAddr": "193.32.126.220",
  "user": "--",
  "app": "PHP",
  "method": "PUT",
  "url": "/public.php/webdav/test.png",
  "message": {
    "Exception": "Error",
    "Message": "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132) at /var/www/html/apps/dav/lib/Connector/Sabre/File.php#691",
    "Code": 0,
    "Trace": [
      {
        "function": "onError",
        "class": "OC\\Log\\ErrorHandler",
        "type": "::",
        "args": [
          2,
          "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132)",
          "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
          691,
          {
            "string": "X-Hash-SHA1: 6c9beda7282bca4f0511416f6a7c42956b77bc62"
          }
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 691,
        "function": "header",
        "args": [
          "X-Hash-SHA1: 6c9beda7282bca4f0511416f6a7c42956b77bc62"
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 192,
        "function": "header",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "X-Hash-SHA1: 6c9beda7282bca4f0511416f6a7c42956b77bc62"
        ]
      },
      {
        "function": "OCA\\DAV\\Connector\\Sabre\\{closure}",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 71,
        "function": "call_user_func",
        "args": [
          {
            "__class__": "Closure"
          },
          "*** sensitive parameter replaced ***"
        ]
      },
      {
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php",
        "line": 95,
        "function": "fclose",
        "args": [
          null
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 75,
        "function": "stream_close",
        "class": "Icewind\\Streams\\Wrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 319,
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php",
        "line": 113,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/public.php",
        "line": 81,
        "args": [
          "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/lib/private/Log/ErrorHandler.php",
    "Line": 91,
    "CustomMessage": "--"
  },
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/2019.04 Iridium/2019.04 Safari/537.36 Chrome/73.0.0.0",
  "version": "20.0.9.1"
}
{
  "reqId": "Bi6wUQMfKwxUr3E0FmX9",
  "level": 3,
  "time": "2021-05-06T19:41:30+00:00",
  "remoteAddr": "193.32.126.220",
  "user": "--",
  "app": "PHP",
  "method": "PUT",
  "url": "/public.php/webdav/test.png",
  "message": {
    "Exception": "Error",
    "Message": "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132) at /var/www/html/apps/dav/lib/Connector/Sabre/File.php#691",
    "Code": 0,
    "Trace": [
      {
        "function": "onError",
        "class": "OC\\Log\\ErrorHandler",
        "type": "::",
        "args": [
          2,
          "Cannot modify header information - headers already sent by (output started at /var/www/html/3rdparty/sabre/http/lib/Sapi.php:132)",
          "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
          691,
          {
            "string": "X-Hash-MD5: 6037bb7acadc733fc2f7600d311547c0"
          }
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 691,
        "function": "header",
        "args": [
          "X-Hash-MD5: 6037bb7acadc733fc2f7600d311547c0"
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/File.php",
        "line": 189,
        "function": "header",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "X-Hash-MD5: 6037bb7acadc733fc2f7600d311547c0"
        ]
      },
      {
        "function": "OCA\\DAV\\Connector\\Sabre\\{closure}",
        "class": "OCA\\DAV\\Connector\\Sabre\\File",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 71,
        "function": "call_user_func",
        "args": [
          {
            "__class__": "Closure"
          },
          "*** sensitive parameter replaced ***"
        ]
      },
      {
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php",
        "line": 95,
        "function": "fclose",
        "args": [
          null
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 75,
        "function": "stream_close",
        "class": "Icewind\\Streams\\Wrapper",
        "type": "->",
        "args": []
      },
      {
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php",
        "line": 95,
        "function": "fclose",
        "args": [
          null
        ]
      },
      {
        "file": "/var/www/html/lib/private/Files/Stream/HashWrapper.php",
        "line": 75,
        "function": "stream_close",
        "class": "Icewind\\Streams\\Wrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 319,
        "function": "stream_close",
        "class": "OC\\Files\\Stream\\HashWrapper",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php",
        "line": 113,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/public.php",
        "line": 81,
        "args": [
          "/var/www/html/apps/dav/appinfo/v1/publicwebdav.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/lib/private/Log/ErrorHandler.php",
    "Line": 91,
    "CustomMessage": "--"
  },
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/2019.04 Iridium/2019.04 Safari/537.36 Chrome/73.0.0.0",
  "version": "20.0.9.1"
}

@supr4s
Copy link

supr4s commented May 17, 2021

Administrator of multiple nextclouds, I had a similar case on one (Nextcloud v21) and I confirm that @Sugaroverdose solution solved the problem. Thank you very much!
The problem has been going on for two years, it would be great to implement a fix for that :)

@pierr0t
Copy link

pierr0t commented May 26, 2021

Same here, seeing the problem on 2 nextclouds (v20 and v21) and @Sugaroverdose solution did solve the problem, thank you !
And yes, a real fix would be welcomed ...

@ghost
Copy link

ghost commented Jun 16, 2021

I just ran into this issue as well with an upload-only folder. Applying the patch above worked for me too.

@chaulota
Copy link

Same here, the above patch worked for me as well.

@szaimen
Copy link
Contributor

szaimen commented Aug 8, 2021

Hi @Sugaroverdose, do you mind creating a PR with your patch for discussion?
Thank you!

@Sugaroverdose
Copy link
Contributor

Sugaroverdose commented Aug 8, 2021

@szaimen as i said earlier, proposed workaround does actually breaks whole part file logic for url shares, so it's not a proper solution and i don't know how permissions working in nextcloud so i can't really make it anyway better, whole idea is in this quote:

Most definitely 'isReadable' is not applicable to folder path as well as to nonexistent files, so to fix this properly eighter 'isReadable' should start to check folders for read permission, or there's should be another way to determine that current user have no permissions to access not yet created .part file

@szaimen szaimen added 1. to develop Accepted and waiting to be taken care of and removed needs info 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels Aug 8, 2021
@Sugaroverdose
Copy link
Contributor

btw after thinking a little bit, whole idea of disabling .part file is kinda dumb it would be better to give restrictive per session permission for upload-only user to read it's own .part files so huge file uploads would be possible

@msi-tl
Copy link

msi-tl commented Sep 9, 2021

This bug is already present in NC 20.0.10 and 21.0.2.
Why is the fix not on the main branch???

@szaimen
Copy link
Contributor

szaimen commented Jan 9, 2023

Hi, please update to 24.0.8 or better 25.0.2 and report back if it fixes the issue. Thank you!

@szaimen szaimen added needs info 0. Needs triage Pending check for reproducibility or if it fits our roadmap and removed 1. to develop Accepted and waiting to be taken care of labels Jan 9, 2023
@szaimen szaimen closed this as completed Mar 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap bug feature: filesystem needs info
Projects
None yet
Development

Successfully merging a pull request may close this issue.