Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Cannot upload to SFTP external storage: Backends provided no user object

未关闭
#558 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
php
领域
backend

调研方向

从 apps/backup/lib/Service/ExternalFolderService.php 的第 385、452 和 543 行附近开始,沿着 apps/backup/lib/Service/UploadService.php 中的上传路径以及 apps/backup/lib/Cron/Manage.php 中的 cron 条目进行追踪。将此流程与 FileEventsListener.php 第 107、209 和 357 行的 files_versions listener 进行比较,然后重现 SFTP 上传失败,并验证 restore point 是否能够在不出现报告中的 NoUserException 的情况下完成上传。

由索引模型根据 Issue 内容生成。

描述

0. Needs triage bug

When trying to upload a restore point to a sftp external storage, the process crashes:

[files] Error: OC\User\NoUserException: Backends provided no user object at <<closure>>

 0. <<closure>>
    OC\Files\Node\Root->getUserFolder()
 1. /var/www/nextcloud/lib/private/Files/Node/LazyFolder.php line 74
    call_user_func_array()
 2. /var/www/nextcloud/lib/private/Files/Node/LazyRoot.php line 40
    OC\Files\Node\LazyFolder->__call()
 3. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 357
    OC\Files\Node\LazyRoot->getUserFolder()
 4. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 209
    OCA\Files_Versions\Listener\FileEventsListener->getPathForNode()
 5. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 107
    OCA\Files_Versions\Listener\FileEventsListener->write_hook()
 6. /var/www/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php line 86
    OCA\Files_Versions\Listener\FileEventsListener->handle()
 7. /var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php line 251
    OC\EventDispatcher\ServiceEventListener->__invoke()
 8. /var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php line 73
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
 9. /var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php line 94
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
10. /var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php line 106
    OC\EventDispatcher\EventDispatcher->dispatch()
11. /var/www/nextcloud/lib/private/Files/Node/HookConnector.php line 112
    OC\EventDispatcher\EventDispatcher->dispatchTyped()
12. /var/www/nextcloud/lib/private/legacy/OC_Hook.php line 105
    OC\Files\Node\HookConnector->write()
13. /var/www/nextcloud/lib/private/Files/View.php line 1252
    OC_Hook::emit()
14. /var/www/nextcloud/lib/private/Files/View.php line 1126
    OC\Files\View->runHooks()
15. /var/www/nextcloud/lib/private/Files/View.php line 670
    OC\Files\View->basicOperation()
16. /var/www/nextcloud/lib/private/Files/Node/File.php line 73
    OC\Files\View->file_put_contents()
17. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 543
    OC\Files\Node\File->putContent()
18. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 452
    OCA\Backup\Service\ExternalFolderService->updateMetadataFile("*** sensitive parameters replaced ***")
19. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 385
    OCA\Backup\Service\ExternalFolderService->createPoint("*** sensitive parameters replaced ***")
20. /var/www/nextcloud/apps/backup/lib/Service/UploadService.php line 318
    OCA\Backup\Service\ExternalFolderService->confirmPoint()
21. /var/www/nextcloud/apps/backup/lib/Service/UploadService.php line 178
    OCA\Backup\Service\UploadService->uploadToExternalFolder()
22. /var/www/nextcloud/apps/backup/lib/Cron/Manage.php line 149
    OCA\Backup\Service\UploadService->uploadPoint()
23. /var/www/nextcloud/apps/backup/lib/Cron/Manage.php line 119
    OCA\Backup\Cron\Manage->manage()
24. /var/www/nextcloud/lib/private/BackgroundJob/Job.php line 54
    OCA\Backup\Cron\Manage->run()
25. /var/www/nextcloud/lib/private/BackgroundJob/TimedJob.php line 60
    OC\BackgroundJob\Job->execute()
26. /var/www/nextcloud/cron.php line 152
    OC\BackgroundJob\TimedJob->execute()

at 2023-09-12T03:50:03+00:00

[files] Error: OC\User\NoUserException: Backends provided no user object at <<closure>>

 0. <<closure>>
    OC\Files\Node\Root->getUserFolder()
 1. /var/www/nextcloud/lib/private/Files/Node/LazyFolder.php line 74
    call_user_func_array()
 2. /var/www/nextcloud/lib/private/Files/Node/LazyRoot.php line 40
    OC\Files\Node\LazyFolder->__call()
 3. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 357
    OC\Files\Node\LazyRoot->getUserFolder()
 4. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 209
    OCA\Files_Versions\Listener\FileEventsListener->getPathForNode()
 5. /var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php line 107
    OCA\Files_Versions\Listener\FileEventsListener->write_hook()
 6. /var/www/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php line 86
    OCA\Files_Versions\Listener\FileEventsListener->handle()
 7. /var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php line 251
    OC\EventDispatcher\ServiceEventListener->__invoke()
 8. /var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php line 73
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
 9. /var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php line 94
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
10. /var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php line 106
    OC\EventDispatcher\EventDispatcher->dispatch()
11. /var/www/nextcloud/lib/private/Files/Node/HookConnector.php line 112
    OC\EventDispatcher\EventDispatcher->dispatchTyped()
12. /var/www/nextcloud/lib/private/legacy/OC_Hook.php line 105
    OC\Files\Node\HookConnector->write()
13. /var/www/nextcloud/lib/private/Files/View.php line 1252
    OC_Hook::emit()
14. /var/www/nextcloud/lib/private/Files/View.php line 1126
    OC\Files\View->runHooks()
15. /var/www/nextcloud/lib/private/Files/View.php line 670
    OC\Files\View->basicOperation()
16. /var/www/nextcloud/lib/private/Files/Node/File.php line 73
    OC\Files\View->file_put_contents()
17. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 543
    OC\Files\Node\File->putContent()
18. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 452
    OCA\Backup\Service\ExternalFolderService->updateMetadataFile("*** sensitive parameters replaced ***")
19. /var/www/nextcloud/apps/backup/lib/Service/ExternalFolderService.php line 385
    OCA\Backup\Service\ExternalFolderService->createPoint("*** sensitive parameters replaced ***")
20. /var/www/nextcloud/apps/backup/lib/Service/UploadService.php line 318
    OCA\Backup\Service\ExternalFolderService->confirmPoint()
21. /var/www/nextcloud/apps/backup/lib/Service/UploadService.php line 178
    OCA\Backup\Service\UploadService->uploadToExternalFolder()
22. /var/www/nextcloud/apps/backup/lib/Cron/Manage.php line 149
    OCA\Backup\Service\UploadService->uploadPoint()
23. /var/www/nextcloud/apps/backup/lib/Cron/Manage.php line 119
    OCA\Backup\Cron\Manage->manage()
24. /var/www/nextcloud/lib/private/BackgroundJob/Job.php line 54
    OCA\Backup\Cron\Manage->run()
25. /var/www/nextcloud/lib/private/BackgroundJob/TimedJob.php line 60
    OC\BackgroundJob\Job->execute()
26. /var/www/nextcloud/cron.php line 152
    OC\BackgroundJob\TimedJob->execute()

at 2023-09-12T03:50:03+00:00

There are a little more details in the initial forum post I initially opened.

Nextcloud: 27.0.2
Backup: 1.2.0

The SFTP server is a Hetzner storage box, with login/username auth.

主要语言
PHP
星标
272
派生
37
PR 合并指标
30 天内没有已合并 PR

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nextcloud/backup 的其他 Issue

查看 nextcloud/backup 的全部 Issue

相似的 Issue

更多 PHP Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。