用 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
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 分享的。 ![]( https://sync.bs10081.com/seafhttp/files/f91d6d94-7b00-4182-8b3a-6361b7b793bd/CleanShot%202022-08-11%20at%2019.49.31%402x.png) 結論,如果需要一個好用的手機 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 后会出现一些乱码 |