SFTP external storage cannot read RSA private key entered in the web form: “Unable to read key”
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 75/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, nginx, php, postgresql
- Lĩnh vực
- backend
Hướng nghiên cứu
Xem xét biểu mẫu frontend của ứng dụng files_external cho bộ nhớ SFTP, có thể nằm trong apps/files_external/lib/Controller/GlobalStoragesController.php hoặc một mẫu liên quan. Trường nhập khóa riêng tư cần được thay đổi từ input thành textarea để bảo toàn dấu xuống dòng. Kiểm tra bằng cách tạo bộ nhớ ngoài SFTP với khóa RSA thông qua giao diện người dùng và xác minh rằng khóa được lưu trữ chính xác trong cơ sở dữ liệu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
⚠️ This issue respects the following points: ⚠️
- This is not a troubleshooting question, general support matter, or webserver/proxy problem, but likely a bug (if unsure, ask the Community Help Forum).
- This issue is not already reported on Github OR solved at the Community Help Forum (I've searched!).
- I'm using a maintained major version of Nextcloud Server and tested against the latest patch level. (Supported major versions and current patch levels).
- I agree to follow Nextcloud's Code of Conduct.
- I've tried my best to provide clear reproduction steps that someone unfamiliar with this bug could use to reproduce it.
Bug description
I'm using files_external using the RSA private key authentication method.
However, when trying to use it after the update I'm getting the error Unable to read key from phpseclib3
I believe the problem is that the private key is stored without its enters. This is because the form for inserting the private key uses an input element and not a textarea element, so the enters of the key will be lost.
Setting the private key using: ./occ -vvv files_external:config --value-from-file <mount-id> private_key ./key.pem preserves the enters and fixes the issue.
Steps to reproduce
- Create a new external storage
- Select SFTP as the storage type
- And RSA private key as the authentication method
- Set up the rest of the form further
- Try to open this external storage folder
- Check the logs and see the
Unable to read keyerror.
Expected behavior
It should store the private key correctly so it works.
Nextcloud Server version
35
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.5
Web server
Nginx
Database engine version
PostgreSQL
Is this bug present after an update or on a fresh install?
Upgraded to a MAJOR version (ex. 31 to 32)
Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
What user-backends are you using?
- Default user-backend (database)
- LDAP/ Active Directory
- SSO - SAML
- Other
Configuration report
{
"system": {
"overwriteprotocol": "https",
"htaccess.RewriteBase": "\/",
"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": [
],
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"allow_local_remote_servers": true,
"default_phone_region": "NL",
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "pgsql",
"version": "35.0.0.10",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"theme": "",
"log_type": "file",
"logfile": "\/tmp\/nextcloud.log",
"loglevel": 2,
"maintenance": false,
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "smtp",
"mail_sendmailmode": "smtp",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpauth": 1,
"mail_smtpport": "587",
"mail_smtpauthtype": "PLAIN",
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"has_rebuilt_cache": true,
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"password": "***REMOVED SENSITIVE VALUE***",
"port": 6379
},
"maintenance_window_start": 1,
"serverid": "0"
}
}
List of activated Apps
Enabled:
- activity: 8.0.0
- admin_audit: 2.0.0-dev.0
- app_api: 35.0.0
- appstore: 2.0.0-dev.0
- bruteforcesettings: 8.0.0
- calendar: 6.6.1
- circles: 35.0.0
- cloud_federation_api: 2.0.0-dev.0
- comments: 2.0.0-dev.0
- contacts: 8.9.0
- contactsinteraction: 2.0.0-dev.0
- dashboard: 8.0.0-dev.0
- dav: 2.0.0-dev.1
- federatedfilesharing: 2.0.0-dev.1
- federation: 2.0.0-dev.0
- files: 3.0.0-dev.0
- files_downloadlimit: 5.3.0
- files_external: 2.0.0-dev.0
- files_lock: 35.0.0
- files_pdfviewer: 8.0.0
- files_reminders: 2.0.0-dev.0
- files_sharing: 2.0.0-dev.1
- files_trashbin: 2.0.0-dev.0
- files_versions: 2.0.0-dev.0
- firstrunwizard: 8.0.0
- logreader: 8.0.0
- lookup_server_connector: 2.0.0-dev.0
- nextcloud_announcements: 7.0.0
- notes: 6.1.0
- notifications: 8.0.0
- oauth2: 2.0.0-dev.0
- office: 1.1.0
- password_policy: 7.0.0
- photos: 8.0.0
- privacy: 7.0.0
- profile: 2.0.0-dev.0
- provisioning_api: 2.0.0-dev.0
- recommendations: 8.0.0
- related_resources: 6.0.0
- richdocuments: 12.0.0
- serverinfo: 7.0.0
- settings: 2.0.0-dev.0
- sharebymail: 2.0.0-dev.0
- sharing: 1.0.4
- support: 7.0.0
- survey_client: 7.0.0
- suspicious_login: 13.0.0
- systemtags: 2.0.0-dev.0
- text: 9.0.0
- theming: 3.0.0-dev.0
- twofactor_backupcodes: 2.0.0-dev.0
- twofactor_nextcloud_notification: 9.0.0
- twofactor_totp: 17.1.0
- twofactor_webauthn: 2.7.1
- updatenotification: 2.0.0-dev.0
- user_oidc: 8.11.0
- user_status: 2.0.0-dev.0
- viewer: 8.0.0
- weather_status: 2.0.0-dev.0
- webhook_listeners: 2.0.0-dev.0
- workflowengine: 3.0.0-dev.0
Disabled:
- carnet: 0.25.13 (installed 0.25.13)
- encryption: 3.0.0-dev.0
- files_antivirus: 6.3.0 (installed 6.3.0)
- previewgenerator: 5.13.0 (installed 5.13.0)
- sharelisting: 1.3.0 (installed 1.3.0)
- tasks: 0.18.0 (installed 0.18.0)
- user_ldap: 2.0.0-dev.0
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{
"reqId": "hzaIhqkFWcPeo0nTPRi7",
"level": 2,
"time": "2026-09-23T18:48:07+00:00",
"remoteAddr": "2001:4c3c:7300:48de:4691:8e78:5b95:1791",
"user": "jeroen",
"app": "no app in context",
"method": "PROPFIND",
"url": "/remote.php/dav/files/jeroen/",
"scriptName": "/remote.php",
"message": "Error while getting quota info, using root quota",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:156.0) Gecko/20100101 Firefox/156.0",
"version": "35.0.0.10",
"exception": {
"Exception": "OCP\\Files\\StorageNotAvailableException",
"Message": "Unable to read key",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
"line": 323,
"function": "getAvailability",
"class": "OC\\Files\\Storage\\FailedStorage",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line": 61,
"function": "getAvailability",
"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line": 74,
"function": "isAvailable",
"class": "OC\\Files\\Storage\\Wrapper\\Availability",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line": 83,
"function": "checkAvailability",
"class": "OC\\Files\\Storage\\Wrapper\\Availability",
"type": "->",
"args": []
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line": 217,
"function": "handleAvailability",
"class": "OC\\Files\\Storage\\Wrapper\\Availability",
"type": "->",
"args": [
"free_space",
""
]
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
"line": 186,
"function": "free_space",
"class": "OC\\Files\\Storage\\Wrapper\\Availability",
"type": "->",
"args": [
""
]
},
{
"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
"line": 186,
"function": "free_space",
"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
"type": "->",
"args": [
""
]
},
{
"file": "/var/www/html/lib/private/legacy/OC_Helper.php",
"line": 231,
"function": "free_space",
"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
"type": "->",
"args": [
""
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
"line": 349,
"function": "getStorageInfo",
"class": "OC_Helper",
"type": "::",
"args": [
"/home-Jeroen",
{
"__class__": "OC\\Files\\Node\\Folder"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 770,
"function": "getQuotaInfo",
"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
"type": "->",
"args": []
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/PropFind.php",
"line": 95,
"function": "{closure:Sabre\\DAV\\CorePlugin::propFind():768}",
"class": "Sabre\\DAV\\CorePlugin",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 768,
"function": "handle",
"class": "Sabre\\DAV\\PropFind",
"type": "->",
"args": [
"{DAV:}quota-available-bytes",
{
"__class__": "Closure"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "propFind",
"class": "Sabre\\DAV\\CorePlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1052,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"propFind",
[
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
}
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 984,
"function": "getPropertiesByNode",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1664,
"function": "getPropertiesIteratorForPath",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"files/jeroen",
[
"{DAV:}getcontentlength",
"{DAV:}getcontenttype",
"{DAV:}getetag",
"{DAV:}getlastmodified",
"{DAV:}creationdate",
"And 33 more entries, set log level to debug to see all entries"
],
1
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1649,
"function": "writeMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\Xml\\Writer",
"elementMap": [],
"contextUri": "/remote.php/dav/",
"namespaceMap": {
"DAV:": "d",
"http://sabredav.org/ns": "s",
"http://owncloud.org/ns": "oc",
"http://nextcloud.org/ns": "nc"
},
"classMap": []
},
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 346,
"function": "generateMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "httpPropFind",
"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": 472,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"method:PROPFIND",
[
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line": 216,
"function": "invokeMethod",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Server.php",
"line": 436,
"function": "start",
"class": "OCA\\DAV\\Connector\\Sabre\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
"line": 25,
"function": "exec",
"class": "OCA\\DAV\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/remote.php",
"line": 158,
"args": [
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function": "require"
},
{
"file": "/var/www/html/lib/OC.php",
"line": 1397,
"function": "{closure:/var/www/html/remote.php:102}",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/remote.php",
"line": 102,
"function": "handleRequests",
"class": "OC",
"type": "::",
"args": [
{
"__class__": "Closure"
}
]
}
],
"File": "/var/www/html/lib/private/Files/Storage/FailedStorage.php",
"Line": 225,
"Hint": "Storage is temporarily not available",
"Previous": {
"Exception": "OCP\\Files\\StorageNotAvailableException",
"Message": "Unable to read key",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 124,
"function": "getAvailability",
"class": "OC\\Files\\Storage\\FailedStorage",
"type": "->",
"args": []
},
{
"function": "{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():122}",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 122,
"function": "array_map",
"args": [
{
"__class__": "Closure"
},
{
"6": "*** sensitive parameters replaced ***",
"7": "*** sensitive parameters replaced ***",
"8": "*** sensitive parameters replaced ***",
"14": "*** sensitive parameters replaced ***"
},
{
"6": "*** sensitive parameters replaced ***",
"7": "*** sensitive parameters replaced ***",
"8": "*** sensitive parameters replaced ***",
"14": "*** sensitive parameters replaced ***"
}
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 144,
"function": "getAvailableStorages",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
{
"6": "*** sensitive parameters replaced ***",
"7": "*** sensitive parameters replaced ***",
"8": "*** sensitive parameters replaced ***",
"14": "*** sensitive parameters replaced ***"
},
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
"line": 62,
"function": "getMountsForUser",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Storage\\StorageFactory"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
"line": 177,
"function": "getMountsFromProvider",
"class": "OC\\Files\\Config\\MountProviderCollection",
"type": "->",
"args": [
{
"__class__": "OCA\\Files_External\\Config\\ConfigAdapter"
},
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Storage\\StorageFactory"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 290,
"function": "addMountForUser",
"class": "OC\\Files\\Config\\MountProviderCollection",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Mount\\Manager"
},
{
"__class__": "Closure"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 415,
"function": "{closure:OC\\Files\\SetupManager::setupForUser():289}",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 289,
"function": "setupForUserWith",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "Closure"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 501,
"function": "setupForUser",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Mount/Manager.php",
"line": 116,
"function": "setupForPath",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
"/jeroen/files",
true
]
},
{
"file": "/var/www/html/lib/private/Files/View.php",
"line": 1577,
"function": "findIn",
"class": "OC\\Files\\Mount\\Manager",
"type": "->",
"args": [
"/jeroen/files"
]
},
{
"file": "/var/www/html/lib/private/Files/Node/Folder.php",
"line": 89,
"function": "getDirectoryContent",
"class": "OC\\Files\\View",
"type": "->",
"args": [
"/jeroen/files",
null,
{
"__class__": "OC\\Files\\Node\\LazyUserFolder"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
"line": 267,
"function": "getDirectoryListing",
"class": "OC\\Files\\Node\\Folder",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
"line": 59,
"function": "getChildren",
"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
"line": 108,
"function": "cacheDirectory",
"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
"type": "->",
"args": [
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
},
{
"__class__": "Sabre\\DAV\\PropFind"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "preloadCollection",
"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php",
"line": 46,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"preloadCollection",
[
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "collectionPreloadNotifier",
"class": "OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1052,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"propFind",
[
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 984,
"function": "getPropertiesByNode",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1664,
"function": "getPropertiesIteratorForPath",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"files/jeroen",
[
"{DAV:}getcontentlength",
"{DAV:}getcontenttype",
"{DAV:}getetag",
"{DAV:}getlastmodified",
"{DAV:}creationdate",
"And 33 more entries, set log level to debug to see all entries"
],
1
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1649,
"function": "writeMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\Xml\\Writer",
"elementMap": [],
"contextUri": "/remote.php/dav/",
"namespaceMap": {
"DAV:": "d",
"http://sabredav.org/ns": "s",
"http://owncloud.org/ns": "oc",
"http://nextcloud.org/ns": "nc"
},
"classMap": []
},
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 346,
"function": "generateMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "httpPropFind",
"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": 472,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"method:PROPFIND",
[
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line": 216,
"function": "invokeMethod",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Server.php",
"line": 436,
"function": "start",
"class": "OCA\\DAV\\Connector\\Sabre\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
"line": 25,
"function": "exec",
"class": "OCA\\DAV\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/remote.php",
"line": 158,
"args": [
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function": "require"
},
{
"file": "/var/www/html/lib/OC.php",
"line": 1397,
"function": "{closure:/var/www/html/remote.php:102}",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/remote.php",
"line": 102,
"function": "handleRequests",
"class": "OC",
"type": "::",
"args": [
{
"__class__": "Closure"
}
]
}
],
"File": "/var/www/html/lib/private/Files/Storage/FailedStorage.php",
"Line": 225,
"Hint": "Storage is temporarily not available",
"Previous": {
"Exception": "phpseclib3\\Exception\\NoKeyLoadedException",
"Message": "Unable to read key",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php",
"line": 56,
"function": "load",
"class": "phpseclib3\\Crypt\\PublicKeyLoader",
"type": "::",
"args": [
false,
""
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 77,
"function": "manipulateStorageConfig",
"class": "OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSAPrivateKey",
"type": "->",
"args": [
"*** sensitive parameters replaced ***",
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 82,
"function": "prepareStorageConfig",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
"*** sensitive parameters replaced ***",
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 111,
"function": "constructStorageForUser",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
"*** sensitive parameters replaced ***"
]
},
{
"function": "{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():109}",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 109,
"function": "array_map",
"args": [
{
"__class__": "Closure"
},
{
"6": "*** sensitive parameters replaced ***",
"7": "*** sensitive parameters replaced ***",
"8": "*** sensitive parameters replaced ***",
"14": "*** sensitive parameters replaced ***"
}
]
},
{
"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
"line": 144,
"function": "getAvailableStorages",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
{
"6": "*** sensitive parameters replaced ***",
"7": "*** sensitive parameters replaced ***",
"8": "*** sensitive parameters replaced ***",
"14": "*** sensitive parameters replaced ***"
},
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
"line": 62,
"function": "getMountsForUser",
"class": "OCA\\Files_External\\Config\\ConfigAdapter",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Storage\\StorageFactory"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
"line": 177,
"function": "getMountsFromProvider",
"class": "OC\\Files\\Config\\MountProviderCollection",
"type": "->",
"args": [
{
"__class__": "OCA\\Files_External\\Config\\ConfigAdapter"
},
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Storage\\StorageFactory"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 290,
"function": "addMountForUser",
"class": "OC\\Files\\Config\\MountProviderCollection",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "OC\\Files\\Mount\\Manager"
},
{
"__class__": "Closure"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 415,
"function": "{closure:OC\\Files\\SetupManager::setupForUser():289}",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 289,
"function": "setupForUserWith",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
},
{
"__class__": "Closure"
}
]
},
{
"file": "/var/www/html/lib/private/Files/SetupManager.php",
"line": 501,
"function": "setupForUser",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
{
"__class__": "OC\\User\\User"
}
]
},
{
"file": "/var/www/html/lib/private/Files/Mount/Manager.php",
"line": 116,
"function": "setupForPath",
"class": "OC\\Files\\SetupManager",
"type": "->",
"args": [
"/jeroen/files",
true
]
},
{
"file": "/var/www/html/lib/private/Files/View.php",
"line": 1577,
"function": "findIn",
"class": "OC\\Files\\Mount\\Manager",
"type": "->",
"args": [
"/jeroen/files"
]
},
{
"file": "/var/www/html/lib/private/Files/Node/Folder.php",
"line": 89,
"function": "getDirectoryContent",
"class": "OC\\Files\\View",
"type": "->",
"args": [
"/jeroen/files",
null,
{
"__class__": "OC\\Files\\Node\\LazyUserFolder"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
"line": 267,
"function": "getDirectoryListing",
"class": "OC\\Files\\Node\\Folder",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
"line": 59,
"function": "getChildren",
"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
"line": 108,
"function": "cacheDirectory",
"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
"type": "->",
"args": [
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
},
{
"__class__": "Sabre\\DAV\\PropFind"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "preloadCollection",
"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php",
"line": 46,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"preloadCollection",
[
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "collectionPreloadNotifier",
"class": "OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1052,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"propFind",
[
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 984,
"function": "getPropertiesByNode",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\DAV\\PropFind"
},
{
"__class__": "OCA\\DAV\\Files\\FilesHome"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1664,
"function": "getPropertiesIteratorForPath",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"files/jeroen",
[
"{DAV:}getcontentlength",
"{DAV:}getcontenttype",
"{DAV:}getetag",
"{DAV:}getlastmodified",
"{DAV:}creationdate",
"And 33 more entries, set log level to debug to see all entries"
],
1
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1649,
"function": "writeMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\Xml\\Writer",
"elementMap": [],
"contextUri": "/remote.php/dav/",
"namespaceMap": {
"DAV:": "d",
"http://sabredav.org/ns": "s",
"http://owncloud.org/ns": "oc",
"http://nextcloud.org/ns": "nc"
},
"classMap": []
},
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 346,
"function": "generateMultiStatus",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Generator"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "httpPropFind",
"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": 472,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"method:PROPFIND",
[
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line": 216,
"function": "invokeMethod",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Server.php",
"line": 436,
"function": "start",
"class": "OCA\\DAV\\Connector\\Sabre\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
"line": 25,
"function": "exec",
"class": "OCA\\DAV\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/remote.php",
"line": 158,
"args": [
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function": "require"
},
{
"file": "/var/www/html/lib/OC.php",
"line": 1397,
"function": "{closure:/var/www/html/remote.php:102}",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/remote.php",
"line": 102,
"function": "handleRequests",
"class": "OC",
"type": "::",
"args": [
{
"__class__": "Closure"
}
]
}
],
"File": "/var/www/html/custom_apps/richdocuments/vendor/phpseclib/phpseclib/phpseclib/Crypt/PublicKeyLoader.php",
"Line": 64
}
},
"message": "Error while getting quota info, using root quota",
"exception": "{\"class\":\"OCP\\Files\\StorageNotAvailableException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/lib/private/Files/Storage/FailedStorage.php:225\",\"trace\":\"#0 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(323): OC\\Files\\Storage\\FailedStorage->getAvailability()\\n#1 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(61): OC\\Files\\Storage\\Wrapper\\Wrapper->getAvailability()\\n#2 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(74): OC\\Files\\Storage\\Wrapper\\Availability->isAvailable()\\n#3 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(83): OC\\Files\\Storage\\Wrapper\\Availability->checkAvailability()\\n#4 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(217): OC\\Files\\Storage\\Wrapper\\Availability->handleAvailability('free_space', '')\\n#5 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(186): OC\\Files\\Storage\\Wrapper\\Availability->free_space('')\\n#6 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(186): OC\\Files\\Storage\\Wrapper\\Wrapper->free_space('')\\n#7 /var/www/html/lib/private/legacy/OC_Helper.php(231): OC\\Files\\Storage\\Wrapper\\Wrapper->free_space('')\\n#8 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(349): OC_Helper::getStorageInfo('/home-Jeroen', Object(OC\\Files\\Node\\Folder), false)\\n#9 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(770): OCA\\DAV\\Connector\\Sabre\\Directory->getQuotaInfo()\\n#10 /var/www/html/3rdparty/sabre/dav/lib/DAV/PropFind.php(95): Sabre\\DAV\\CorePlugin->{closure:Sabre\\DAV\\CorePlugin::propFind():768}()\\n#11 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(768): Sabre\\DAV\\PropFind->handle('{DAV:}quota-ava...', Object(Closure))\\n#12 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->propFind(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Connector\\Sabre\\Directory))\\n#13 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#14 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Connector\\Sabre\\Directory))\\n#15 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#16 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#17 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#18 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#19 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#20 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#21 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#22 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#23 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#24 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#25 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#26 {main}\",\"previous\":{\"class\":\"OCP\\Files\\StorageNotAvailableException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/lib/private/Files/Storage/FailedStorage.php:225\",\"trace\":\"#0 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(124): OC\\Files\\Storage\\FailedStorage->getAvailability()\\n#1 [internal function]: OCA\\Files_External\\Config\\ConfigAdapter->{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():122}(Object(OC\\Files\\Storage\\FailedStorage), Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#2 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(122): array_map(Object(Closure), Array, Array)\\n#3 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(144): OCA\\Files_External\\Config\\ConfigAdapter->getAvailableStorages(Array, Object(OC\\User\\User))\\n#4 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(62): OCA\\Files_External\\Config\\ConfigAdapter->getMountsForUser(Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#5 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(177): OC\\Files\\Config\\MountProviderCollection->getMountsFromProvider(Object(OCA\\Files_External\\Config\\ConfigAdapter), Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#6 /var/www/html/lib/private/Files/SetupManager.php(290): OC\\Files\\Config\\MountProviderCollection->addMountForUser(Object(OC\\User\\User), Object(OC\\Files\\Mount\\Manager), Object(Closure))\\n#7 /var/www/html/lib/private/Files/SetupManager.php(415): OC\\Files\\SetupManager->{closure:OC\\Files\\SetupManager::setupForUser():289}()\\n#8 /var/www/html/lib/private/Files/SetupManager.php(289): OC\\Files\\SetupManager->setupForUserWith(Object(OC\\User\\User), Object(Closure))\\n#9 /var/www/html/lib/private/Files/SetupManager.php(501): OC\\Files\\SetupManager->setupForUser(Object(OC\\User\\User))\\n#10 /var/www/html/lib/private/Files/Mount/Manager.php(116): OC\\Files\\SetupManager->setupForPath('/jeroen/files', true)\\n#11 /var/www/html/lib/private/Files/View.php(1577): OC\\Files\\Mount\\Manager->findIn('/jeroen/files')\\n#12 /var/www/html/lib/private/Files/Node/Folder.php(89): OC\\Files\\View->getDirectoryContent('/jeroen/files', NULL, Object(OC\\Files\\Node\\LazyUserFolder))\\n#13 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(267): OC\\Files\\Node\\Folder->getDirectoryListing()\\n#14 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(59): OCA\\DAV\\Connector\\Sabre\\Directory->getChildren()\\n#15 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->cacheDirectory(Object(OCA\\DAV\\Files\\FilesHome), Object(Sabre\\DAV\\PropFind))\\n#16 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->preloadCollection(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#17 /var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php(46): Sabre\\DAV\\Server->emit('preloadCollecti...', Array)\\n#18 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin->collectionPreloadNotifier(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#19 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#20 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#21 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#22 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#23 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#24 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#25 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#26 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#27 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#28 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#29 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#30 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#31 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#32 {main}\",\"previous\":{\"class\":\"phpseclib3\\Exception\\NoKeyLoadedException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/custom_apps/richdocuments/vendor/phpseclib/phpseclib/phpseclib/Crypt/PublicKeyLoader.php:64\",\"trace\":\"#0 /var/www/html/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php(56): phpseclib3\\Crypt\\PublicKeyLoader::load(false, '')\\n#1 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(77): OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSAPrivateKey->manipulateStorageConfig(Object(OCA\\Files_External\\Lib\\StorageConfig), Object(OC\\User\\User))\\n#2 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(82): OCA\\Files_External\\Config\\ConfigAdapter->prepareStorageConfig(Object(OCA\\Files_External\\Lib\\StorageConfig), Object(OC\\User\\User))\\n#3 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(111): OCA\\Files_External\\Config\\ConfigAdapter->constructStorageForUser(Object(OC\\User\\User), Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#4 [internal function]: OCA\\Files_External\\Config\\ConfigAdapter->{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():109}(Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#5 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(109): array_map(Object(Closure), Array)\\n#6 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(144): OCA\\Files_External\\Config\\ConfigAdapter->getAvailableStorages(Array, Object(OC\\User\\User))\\n#7 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(62): OCA\\Files_External\\Config\\ConfigAdapter->getMountsForUser(Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#8 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(177): OC\\Files\\Config\\MountProviderCollection->getMountsFromProvider(Object(OCA\\Files_External\\Config\\ConfigAdapter), Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#9 /var/www/html/lib/private/Files/SetupManager.php(290): OC\\Files\\Config\\MountProviderCollection->addMountForUser(Object(OC\\User\\User), Object(OC\\Files\\Mount\\Manager), Object(Closure))\\n#10 /var/www/html/lib/private/Files/SetupManager.php(415): OC\\Files\\SetupManager->{closure:OC\\Files\\SetupManager::setupForUser():289}()\\n#11 /var/www/html/lib/private/Files/SetupManager.php(289): OC\\Files\\SetupManager->setupForUserWith(Object(OC\\User\\User), Object(Closure))\\n#12 /var/www/html/lib/private/Files/SetupManager.php(501): OC\\Files\\SetupManager->setupForUser(Object(OC\\User\\User))\\n#13 /var/www/html/lib/private/Files/Mount/Manager.php(116): OC\\Files\\SetupManager->setupForPath('/jeroen/files', true)\\n#14 /var/www/html/lib/private/Files/View.php(1577): OC\\Files\\Mount\\Manager->findIn('/jeroen/files')\\n#15 /var/www/html/lib/private/Files/Node/Folder.php(89): OC\\Files\\View->getDirectoryContent('/jeroen/files', NULL, Object(OC\\Files\\Node\\LazyUserFolder))\\n#16 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(267): OC\\Files\\Node\\Folder->getDirectoryListing()\\n#17 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(59): OCA\\DAV\\Connector\\Sabre\\Directory->getChildren()\\n#18 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->cacheDirectory(Object(OCA\\DAV\\Files\\FilesHome), Object(Sabre\\DAV\\PropFind))\\n#19 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->preloadCollection(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#20 /var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php(46): Sabre\\DAV\\Server->emit('preloadCollecti...', Array)\\n#21 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin->collectionPreloadNotifier(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#22 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#23 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#24 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#25 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#26 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#27 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#28 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#29 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#30 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#31 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#32 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#33 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#34 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#35 {main}\"}}}",
"CustomMessage": "Error while getting quota info, using root quota"
},
"id": "6ab41eeccec45"
}
Additional info
No response
- Ngôn ngữ chính
- PHP
- Star
- 37.1k
- Fork
- 5.3k
- Merge trung bình
- 2 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 717
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nextcloud/server
-
[Bug]: SnowflakeGenerator passes arguments in wrong order to ISequence, causing duplicate IDs in Nextcloud 35Có thể đã có người làm @backportbot đã nhận 7 ngày trước. Đang mở0. Needs triage 35-feedback bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
nextcloud/server#65434 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
0. Needs triage 35-feedback bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
34-feedback
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Add a default limit to the results of the `occ taskprocessing:list` commandCó thể đã có người làm @Sahas2711 đã nhận 11 ngày trước. Đang mởenhancement feature: TaskProcessing good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
nextcloud/server#65243 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
1. to develop technical debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của nextcloud/server
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Automattic/blocks-engine#3090 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
macOS
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
beyondcode/herd-community#1771 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
-
module: user interface priority: high severity: minor type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày