想把大量本地文件由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