概述
Nextcloud 中对文件进行修改、删除操作会失败。网页端显示错误,客户端显示返回 HTTP 423 (Locked) 状态码。
HTTP 423 状态码并未定义在 HTTP 标准中。其定义在 RFC 4918 中作为 HTTP 协议的一个扩展。
HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) — RFC 4918
系统环境
宿主机
- OS:Ubuntu 20.04
- Server:nginx-1.21.0
- MySQL:8.0.25
- Nextcloud:21.0.0
Docker
- php:8.07-fpm-alpine3.13
解决方法
临时解决
- 开启维护模式,详见官方文档。
- 清空数据库中的表
oc_file_locks
。不是删除表! - 关闭维护模式。
- 确保你的后台任务能够正常执行,后台任务在「设置 -> 基本设置」中查看。
一劳永逸
- 如果你可以控制 Nextcloud 所在服务器,建议为 Nextcloud 配置 Redis 缓存。配置方法见官方文档。
- 如果你不能为 Nextcloud 配置 Redis 缓存,你可以关闭文件锁定。修改
config/config.php
文件,写入'filelocking.enabled' => false
。
关闭文件锁定可能会导致并发状态下对文件的操作出错,比如造成文件内容混乱或损坏。
不知道大佬有没有遇到过nextcloud上传速度非常慢的情况(就几百kb每秒),而下载速度没影响
可以参考官方文档调整一下参数
max_chunk_size
。谢谢大佬的提示
实测,nginx配置增大client_body_buffer_size可以提速
参考: https://github.com/nextcloud/docker/issues/680