nextcloud 同步本地文件

想把大量本地文件由nextcloud管理

 

一个个上传显然不现实

 

即使有批量上传工具,那也是多了次硬盘写入,损硬盘不说,还耗时

 

期望的功能是,在操作系统文件管理层面,操作文件,例如把一些文件,直接移动/拷贝到nextcloud相关用户的文件目录之下

 

之后直接作同步,由nextcloud扫描用户目录,加载这些文件的信息

 

这是个很硬的需求,官方应该提供支持才对

 

在nextcloud后台管理页面里没有看到相关操作

 

只好到官网找资料

 

https://help.nextcloud.com/t/local-sync-with-nextcloud/8973/11

 

找到解决办法

 

sudo -u www-data php occ files:scan --user

 

因为是docker下,默认没有sudo命令 需要多绕几部

 

记录如下

docker exec -it nextcloud bash
cd /var/www/html
chown root:root config/config.php
php occ files:scan --all
chown www-data:www-data config/config.php

php occ files:scan --all 成功后输出如下

root@076e0466ade7:/var/www/html# php occ files:scan --all
Starting scan for user 1 out of 1 (<user_name>)

+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 223 | 394 | 00:00:20 |
+---------+-------+--------------+

之所以要改一次用户和组

是因为config/config.php 原用户权限是www-data,docker下默认用户是root,且内缺失大量用户权限相关的命令,如sudo 只好临时用root执行
root@076e0466ade7:/var/www/html# php occ files:scan --all
Console has to be executed with the user that owns the file config/config.php
Current user: root
Owner of config.php: www-data
Try adding 'sudo -u www-data ' to the beginning of the command (without the single quotes)

 

 --

后续发现更好的办法 直接以www-data 进容器,避免权限问题

docker run --user www-data 

posted @ 2022-01-08 06:52  cclient  阅读(3126)  评论(0编辑  收藏  举报