OCC命令给Nextcloud手动添加文件

有时候,直接通过Web页面上传文件并不那么方便,于是有的朋友就直接把文件上传到服务器里,然后拷贝到data目录下,打开NextCloud,却还是之前的文件。

这是因为虽然上传了文件,但是ownCloud/Nextcloud的数据库里并没有这个文件的信息。文件信息都被存储在数据库的oc_filecache表中。

使用OCC命令更新文件索引。

occ有三个用于管理Nextcloud中文件的命令:

files
 files:cleanup              #清楚文件缓存
 files:scan                 #重新扫描文件系统
 files:transfer-ownership   #将所有文件和文件夹都移动到另一个文件夹

我们需要使用 files:scan   来扫描新文件。

  格式:
  files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all]
  [user_id1] ... [user_idN]

参数:
  user_id               #扫描所指定的用户(一个或多个,多个用户ID之间要使用空格分开)的所有文件

选项:
  --path                #限制扫描路径
  --all                 #扫描所有已知用户的所有文件
  --quiet               #不输出统计信息
  --verbose             #在扫描过程中显示正在处理的文件和目录
  --unscanned           #仅扫描以前未扫描过的文件

以下是一个具体的命令示例:

sudo -u www-data php occ files:scan --all   #扫描所有用户的所有文件

执行命令后未进行扫描并列出扫描信息。

如果不想显示扫描信息,可以在后面加上

--quiet ,如下:
sudo -u www-data php occ files:scan --all --quiet

指定扫描位置

总是扫描全部信息并不是那么有必要,还会白白消耗服务器资源。

指定扫描的用户

列出所有用户:

sudo -u www-data php occ user:list

为用户ChengYe扫描文件:

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

指定扫描目录

当使用

--path

 选项时,该路径必须包含以下部分:

"user_id/files/path"
  或
"user_id/files/mount_name"
  或
"user_id/files/mount_name/path"

其中,/files/ 是必须要加上的,不可忽略。

示例:

sudo -u www-data php occ files:scan --path="/ChengYe/files/Photos" #指向用户ChengYe的Photos文件夹

实践:

在容器中使用时 发现用户不好切换,应该在执行容器命令时就进行用户切换;

提示你要切换用户后执行


$ docker exec  myNextcloud    php occ user:list
Console has to be executed with the user that owns the file config/config.php
Current user id: 0
Owner id of config.php: 33
Try adding 'sudo -u #33' to the beginning of the command (without the single quotes)
If running with 'docker exec' try adding the option '-u 33' to the docker command (without the single quotes)

按上面的提升,只能切换uid 33,不能用用户名'www-data', 

$ docker exec  -u 33  myNextcloud   php occ user:list

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 Nextcloud: 1. 安装 LAMP 或 LEMP 环境(推荐使用 LEMP) ```bash # 安装 epel-release 和 nginx sudo dnf install -y epel-release sudo dnf install -y nginx # 安装 MariaDB sudo dnf install -y mariadb-server mariadb # 启动 MariaDB sudo systemctl start mariadb # 设置 MariaDB 开机自启 sudo systemctl enable mariadb # 运行 MySQL 安全策略 sudo mysql_secure_installation # 安装 PHP-FPM 和相关的扩展 sudo dnf install -y php-fpm php-opcache php-gd php-mysqlnd php-json php-mbstring php-xml php-zip php-intl php-curl ``` 2. 安装 Nextcloud ```bash # 添加 Nextcloud 的存储库 sudo dnf install -y https://download.nextcloud.com/server/releases/nextcloud-22.2.0-1.noarch.rpm # 安装 Nextcloud sudo dnf install -y nextcloud # 配置 SELinux sudo setsebool -P httpd_can_network_connect_db 1 # 配置 Nginx sudo cp /usr/share/doc/nextcloud-22.2.0-1/nginx.example.conf /etc/nginx/conf.d/nextcloud.conf sudo vi /etc/nginx/conf.d/nextcloud.conf # 在 server {} 块中添加以下内容 location /nextcloud { alias /usr/share/webapps/nextcloud/; try_files $uri $uri/ /nextcloud/index.php?$query_string; location ~ ^/nextcloud/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/nextcloud/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/nextcloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; fastcgi_read_timeout 300; } } # 重新加载 Nginx 配置 sudo systemctl reload nginx # 配置数据库 sudo mysql -u root -p CREATE DATABASE nextcloud; CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; FLUSH PRIVILEGES; exit # 初始化 Nextcloud sudo -u http /usr/bin/php /usr/share/webapps/nextcloud/occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextcloud" --database-pass "password" --admin-user "admin" --admin-pass "password" ``` 3. 配置 HTTPS ```bash # 安装 Certbot sudo dnf install -y certbot python3-certbot-nginx # 获取证书 sudo certbot --nginx -d example.com # 自动更新证书 sudo vi /etc/crontab # 在最后添加以下内容 0 0 1 * * root /usr/bin/certbot renew --quiet && systemctl reload nginx ``` 安装 OnlyOffice: 1. 安装 Docker ```bash # 安装 Docker sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io # 启动 Docker sudo systemctl start docker # 设置 Docker 开机自启 sudo systemctl enable docker ``` 2. 安装 OnlyOffice ```bash # 创建目录 sudo mkdir -p /app/onlyoffice/DocumentServer/data # 创建 Docker 网络 sudo docker network create onlyoffice # 运行 OnlyOffice sudo docker run -i -t -d --restart=always --network=onlyoffice --name onlyoffice-document-server -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver:latest # 配置 Nginx 反向代理 sudo vi /etc/nginx/conf.d/onlyoffice.conf # 添加以下内容 upstream onlyoffice { server 127.0.0.1:80; } server { listen 80; server_name onlyoffice.example.com; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name onlyoffice.example.com; # SSL configuration ssl_certificate /etc/letsencrypt/live/onlyoffice.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/onlyoffice.example.com/privkey.pem; # SSL session caching ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # SSL security ssl_protocols TLSv1.2 TLSv1.3; # OnlyOffice proxy location / { proxy_pass http://onlyoffice; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # 重新加载 Nginx 配置 sudo systemctl reload nginx ``` 3. 配置 Nextcloud ```bash # 安装 OnlyOffice 应用 sudo -u http php /usr/share/webapps/nextcloud/occ app:install onlyoffice # 配置 OnlyOffice sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice DocumentServerUrl --value="https://onlyoffice.example.com" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice DocumentServerInternalUrl --value="http://onlyoffice" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice StorageUrl --value="/nextcloud/remote.php/webdav/" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice StorageUrl --value="/nextcloud/remote.php/webdav/" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice DisableConfig --value="false" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice ForceSave --value="true" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice Secret --value="secret" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice JWTSecret --value="jwtsecret" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice JWTHeader --value="Authorization" sudo -u http php /usr/share/webapps/nextcloud/occ config:app:set onlyoffice VerifyPeerOff --value="true" ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值