
用 NC 客户端同步文件,1G 左右的文件同步报错,修改 apache 的 php.ini 和 NC 的.user.ini 文件解决了。我把 upload_max_filesize ,post_max_size 和 memory_limit 都修改为 16G 了,连一个 3.6G 的文件都同步不了。请问有遇到过类似问题的筒子吗?
报错:Class 'OC\Log\ExceptionSerializer' not found at ./nextcloud/web/lib/private/Log.php#318
搜索过这个问题,github 上也没看出一个明确的解决方案。
1 jackey007 OP 实在解决不了,怕是还得折腾 seafile ,悲催…… |
2 T0m008 2022-08-11 03:43:58 +08:00 apache 的 LimitRequestBody 也要提高 |
3 documentzhangx66 2022-08-11 06:42:06 +08:00 1.传输文件的大小,与 upload_max_filesize 、post_max_size 、memory_limit 这些参数,其实都没什么关联。无论分时还是切片,都可以绕过这些东西。 2.我很怀疑,NextCloud 连个传输文件都做不好,checksum 这种事情,它更不可能做了吧? 3.搜了一下,隔壁 ownCloud 也有这个问题。 4.不过回头想想,这种开源软件开发商,本质上其实就是个前端公司,技术实力并不是他们的强项,他们的主要任务是,提供一个罗永浩式的可用的功能,然后主要精力是美化软件。几年前 syncthing 连文件同步逻辑都没做好。真要技术强了,早就去做商业化了,干嘛还开源。 5.所以,不建议用这些玩意同步你的重要数据。如果一定要,外面打个包,zip 都行,这样自己还可以检查数据的正确性,或者在解压时被动检查。另外自己还要再搞一套文件备份机制,别拿它当做备份。 |
4 bs10081 2022-08-11 06:42:07 +08:00 @jackey007 我主流的 self-hosting 基本都用,最後是得群 + Seafile ,Seafile 拿使用非常 nice ,群拿同步案。 |
5 Osk 2022-08-11 07:40:40 +08:00 nextcloud 传大文件的时候, 是有点折腾, 一个是 httpd 的一些设置, 你已经改了. 另一个可能是: nextcloud 默认分片传输, 所有分片传完后, 后台会执行复制来合并分片, NVMe 这种还好, HDD 容易超时... 可以关闭分片试试. 最后: nextcloud 的核心功能有大问题, 慎用... 不知道现在解决动不动读取整个文件内容这个 bug 没有. |
6 hhacker 2022-08-11 08:36:01 +08:00 nextcloud 最大的问题是大版本升级很容易升挂,不能跨版本升级,如果跨了大版本,不会有提示然后系统就挂了 |
7 rshun 2022-08-11 08:38:19 +08:00 如果你走的是 CF ,你可以直连试试 |
8 dototototo 2022-08-11 09:48:09 +08:00 说下我的经历,我最大上传过 12 G 的文件没出现问题,你可以先看下官方指导里说的一些设置对不对。https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 还有看下 Nextcloud 的后台检测结果,是不是什么配置没弄好?如果没弄好的话它会有提示的。 |
9 neroxps 2022-08-11 09:54:20 +08:00 @jackey007 #1 seafile 客户端传输文件时候需要提前切片,web 传输文件需要服务器切片,多人同时在 web 端传输大文件的话,会耗尽服务器 CPU 资源。 seafile 还是适合做文本文档小文件备份,大量大文件(如视频、照片)没有极致的版本管理需求的,不太合适。 我用了 3 年 seafile 社区版,最终还是换回群辉。手机客户端找文件比 seafile 方便(企业版才能搜索)。 |
10 bubbleteaclub 2022-08-11 13:30:46 +08:00 我也是同步大文件出错,我按照这个修改了的 https://www.wuwenlong.net/archives/220 看起来是比你的多改了一行: > max_execution_time=0#默认是 30 秒,改为 0 ,表示没有上传时间限制 |
11 gengchun 2022-08-11 13:58:21 +08:00 我用 NC 这种的原因就是出问题自己能修,而且能直接在线调。NC 这种算是最简单的架构。有一些基础,很多问题可以自己处理。数据也容易恢复。 类似 seafile 这种直接用 C 实现的,反正我是不会用的,因为不想花时间去看代码。 要防止文件损坏,建议用 raid 或者支持类似功能的文件系统,比如说 btrfs, zfs 这种。这个其实和同步是两个问题。 @neroxps 强调分布式都有这个问题,tidb 一开始的实现也是 QPS 因为 CPU 限制上不去,这个是很要命的。没有现成方案,要优化需要相当的技术,不是堆工时可以解决的事情。 |
12 jackey007 OP @bs10081 我用的是基于 debian 的 UNAS ,一个国产 NAS 软件。挂载我用的 UNAS 自带的,之前也用它自带的同步,一直没有问题,但是这个同步软件没有移动端,所以才开始折腾 |
13 jackey007 OP 我看了一下,我的 php.ini 和.htaccess 文件里都没有这个选项,请问这个选项是在哪个文件的设置里? |
14 jackey007 OP @bs10081 看来要做好同步盘不容易啊。我之前用的 UNAS 自带的同步,用了几年,倒是没出问题,只是这玩意儿没有移动端 |
17 jackey007 OP @dototototo 好的,谢谢,我确认一下。Nextcloud 小白,请问后台检测结果要在哪里看? |
18 jackey007 OP @bubbleteaclub 这个链接我打不开。但是这个应该不是问题,我内网测试的,max_execution_time=3600 ,这里不会超时。对了,请问您用得 NC 是哪个版本的?我的是 20.0.0 ,不止是不是后续版本解决了这个问题。我搜索报错信息,github 上有讨论过: https://github.com/nextcloud/server/issues/24558 |
19 jackey007 OP 感谢大家的回复,我的问题解决了。最终的问题其实很简单。 官方文档里关于 output_buffering 的修改陈述是这样的: Output Buffering must be turned off in .htaccess or .user.ini or php.ini 我之前看.htaccess 和.user.ini 里都已经设置为 output_buffering = 0 了,就没有在 php.ini 里设置,今天才发现其实不行。把 php.ini 里的相应项设置为 output_buffering = OFF 就正常工作了。目前测试过 7.3GB 的文件同步,没有发现问题。 再次感谢大家。 |
20 bs10081 2022-08-11 19:52:50 +08:00 @jackey00 #12 #14 是的,Seafile 最大的我得倒不是 @neroxps #9 所的性能,竟以我的( 1Gbps/1Gbps )及莓派 4B 4G 的弱性能件下,多人( 5 人)使用的候,CPU 也有超 50%,一般都在 5~15%徘,系是官方 64bit 。 Seafile 最大的是,它的手 App 非常用,特是打一存了照片或影片的料,就出卡死的,得等到整料都 cache 下以後才恢正常,法忍受,太用了。 但是的 App 我得算是目前同步中的佼佼者,速度快( Seafile 同步完 5 案小零碎案以後,Synology Drive 才同步了 4000 多案),定不吃性能(相 PHP 的 NextCloud 及 Synology Drive ,C 的 Seafile 完 )。 特是 SeaDrive ,存式的非常舒服,我都拿存截,永用不完的截空(案先存在本地,後上至 Server 後,且超 Cache 留存件,就本地除),哈哈哈。下面就是通 Seafile 分享的。  ,如果需要一好用的手 App ,是乖乖群比好,Seafile 和 Synology Drive 配合使用。 附上我使用的 Seafile Image ( Docker 容器) https://github.com/ggogel/seafile-containerized |
21 neroxps 2022-08-11 22:50:40 +08:00 via iPhone @bs10081 seafile 客户端是本地客户端切片再上传。如果你试过同步多个 超过 6G 的单文件的话,同步速度是没有 nextcloud 或者群晖快。这不是性能局限了,是他存储模式必须切块,小文件切块很快,大文件就得等等了。 web 端因为没有程序 必须服务器切块,所以就更局限了。 但我是因为手机端实在受不住才放弃它的。 |
22 jackey007 OP @bs10081 您这个体验很细致。我的要求其实不高,只要同步稳定,不出错就行。负载的话,我的 NAS 是 8100CPU 和 16G 内存,就家人使用,客户端数量不超过 5 个,也基本不会同时同步大文件,所以不会有问题。要求很简单,但是要求部署好以后可以稳定运行。 |
23 dototototo 2022-08-12 00:56:55 +08:00 via Android @jackey007 就是管理员后台概览那个页面,它有一些固定检测项目,没通过会有提示。 |
24 dototototo 2022-08-12 00:58:44 +08:00 via Android 发现已经解决了呀,恭喜~ |
25 bs10081 2022-08-12 02:43:26 +08:00 @jackey007 #22 家人使用的,比吃手 App ,但是 Seafile 手 App 又做的不好 QAQ ,NextCloud 的又不佳 |
26 ungrown 2022-08-15 10:55:45 +08:00 @jackey007 #1 怎么说呢,虽然我没用过 nextcloud ,而且在用 seafile ,但我只能先提醒你,也许 seafile 比 nextcloud 好,但绝没有到能让你完全不闹心的程度。 seafile 也会出现无法及时检测到文件变动、无法及时获取已更新文件、多个同步终端会频繁产生冲突文件……等等闹心问题,也是个需要哄、需要妥协、需要让步的主。 实际上,这些开源方案都有不少的小毛病,可能 seafile 已经算这里面做得不错的了(毕竟有付费分支) 我用的坚果云同步比 seafile 稳得多,但偶尔偶尔偶尔也会出些非常小的问题。 当然,换 seafile 确实是值得的。 |
27 linuxgo 2022-08-18 16:03:00 +08:00 nc 我用了很久了,中间也出现过一些 bug ,甚至无法上传文件,但是随着不断更新,现在问题越来越少了,app 同步文件的功能也很好用了,每次都是我刚用相机拍完一张照片,nc 就在后台开始上传了。 seafile 看介绍说服务端采用加密方式,这个很危险哦,一旦那天 seafile 出问题了,那不是所有文件都报废了?而且像我的应用,在家里用的 samba ,出门才用 nc 。如果文件加密了,在家里 samba 就打不开了,没法用 |
28 jackey007 OP 更新一下,我把 php.ini 里的 output_buffering 设为 off 时,unas 的管理页面打不开,需要设置 htaccess 和.user.ini 为 output_buffering = OFF 。另外,在内网同步还是会报错,外网不会,限制上传速度为 10MB 以后解决,应该是上传速度过快导致的问题。目前使用良好,暂时未出现问题。 |
29 bubbleteaclub 2022-08-31 14:52:33 +08:00 @jackey007 我用的 24.0.1 ,好久没看 V2EX 了,发现已经解决啦,恭喜你 |
30 lllong33 2022-11-11 13:49:28 +08:00 大佬们, 请教一下 |
31 lllong33 2022-11-11 13:50:56 +08:00 大佬们, 请教一下, 写代码碰到的文件冲突怎么解决 1. IDEA 写代码时会一直提示保存系统版本还是本地版本(file cache conflict) 2. vscode 后会出现一些乱码 |
32 wlxb2019 2024-11-27 15:37:51 +08:00 我使用客户端把本地文件同步到 web 服务器也大佬,我使用 nextcloud 同步电脑上的文件到服务器,上传几百 M 就失败,有时候报 413 错误,有时候提示文件大。我根据搜索出来的方法放大了上传文件体积,但仍然是这样。我前端挂了 cdn ,有解决思路吗 |