V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
jackey007
V2EX  ›  Linux

有人用 NextCloud 同步大文件出错的吗?

  •  
  •   jackey007 · 116 天前 · 2832 次点击
    这是一个创建于 116 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 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 上也没看出一个明确的解决方案。

    31 条回复    2022-11-11 13:50:56 +08:00
    jackey007
        1
    jackey007  
    OP
       116 天前
    实在解决不了,怕是还得折腾 seafile ,悲催……
    T0m008
        2
    T0m008  
       116 天前
    apache 的 LimitRequestBody 也要提高
    documentzhangx66
        3
    documentzhangx66  
       116 天前   ❤️ 1
    1.传输文件的大小,与 upload_max_filesize 、post_max_size 、memory_limit 这些参数,其实都没什么关联。无论分时还是切片,都可以绕过这些东西。

    2.我很怀疑,NextCloud 连个传输文件都做不好,checksum 这种事情,它更不可能做了吧?

    3.搜了一下,隔壁 ownCloud 也有这个问题。

    4.不过回头想想,这种开源软件开发商,本质上其实就是个前端公司,技术实力并不是他们的强项,他们的主要任务是,提供一个罗永浩式的可用的功能,然后主要精力是美化软件。几年前 syncthing 连文件同步逻辑都没做好。真要技术强了,早就去做商业化了,干嘛还开源。

    5.所以,不建议用这些玩意同步你的重要数据。如果一定要,外面打个包,zip 都行,这样自己还可以检查数据的正确性,或者在解压时被动检查。另外自己还要再搞一套文件备份机制,别拿它当做备份。
    bs10081
        4
    bs10081  
       116 天前
    @jackey007 我主流的 self-hosting 網盤基本都用過,最後還是得群暉 + Seafile ,Seafile 拿來掛載使用非常 nice ,群暉則拿來同步檔案。
    Osk
        5
    Osk  
       116 天前
    nextcloud 传大文件的时候, 是有点折腾, 一个是 httpd 的一些设置, 你已经改了.


    另一个可能是: nextcloud 默认分片传输, 所有分片传完后, 后台会执行复制来合并分片, NVMe 这种还好, HDD 容易超时... 可以关闭分片试试.


    最后: nextcloud 的核心功能有大问题, 慎用... 不知道现在解决动不动读取整个文件内容这个 bug 没有.
    hhacker
        6
    hhacker  
       116 天前
    nextcloud 最大的问题是大版本升级很容易升挂,不能跨版本升级,如果跨了大版本,不会有提示然后系统就挂了
    rshun
        7
    rshun  
       116 天前
    如果你走的是 CF ,你可以直连试试
    dototototo
        8
    dototototo  
       116 天前
    说下我的经历,我最大上传过 12 G 的文件没出现问题,你可以先看下官方指导里说的一些设置对不对。https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html

    还有看下 Nextcloud 的后台检测结果,是不是什么配置没弄好?如果没弄好的话它会有提示的。
    neroxps
        9
    neroxps  
       116 天前
    @jackey007 #1 seafile 客户端传输文件时候需要提前切片,web 传输文件需要服务器切片,多人同时在 web 端传输大文件的话,会耗尽服务器 CPU 资源。

    seafile 还是适合做文本文档小文件备份,大量大文件(如视频、照片)没有极致的版本管理需求的,不太合适。

    我用了 3 年 seafile 社区版,最终还是换回群辉。手机客户端找文件比 seafile 方便(企业版才能搜索)。
    bubbleteaclub
        10
    bubbleteaclub  
       116 天前
    我也是同步大文件出错,我按照这个修改了的
    https://www.wuwenlong.net/archives/220
    看起来是比你的多改了一行:
    > max_execution_time=0#默认是 30 秒,改为 0 ,表示没有上传时间限制
    gengchun
        11
    gengchun  
       116 天前
    我用 NC 这种的原因就是出问题自己能修,而且能直接在线调。NC 这种算是最简单的架构。有一些基础,很多问题可以自己处理。数据也容易恢复。

    类似 seafile 这种直接用 C 实现的,反正我是不会用的,因为不想花时间去看代码。

    要防止文件损坏,建议用 raid 或者支持类似功能的文件系统,比如说 btrfs, zfs 这种。这个其实和同步是两个问题。


    @neroxps 强调分布式都有这个问题,tidb 一开始的实现也是 QPS 因为 CPU 限制上不去,这个是很要命的。没有现成方案,要优化需要相当的技术,不是堆工时可以解决的事情。
    jackey007
        12
    jackey007  
    OP
       116 天前
    @bs10081 我用的是基于 debian 的 UNAS ,一个国产 NAS 软件。挂载我用的 UNAS 自带的,之前也用它自带的同步,一直没有问题,但是这个同步软件没有移动端,所以才开始折腾
    jackey007
        13
    jackey007  
    OP
       116 天前
    我看了一下,我的 php.ini 和.htaccess 文件里都没有这个选项,请问这个选项是在哪个文件的设置里?
    jackey007
        14
    jackey007  
    OP
       116 天前
    @bs10081 看来要做好同步盘不容易啊。我之前用的 UNAS 自带的同步,用了几年,倒是没出问题,只是这玩意儿没有移动端
    jackey007
        15
    jackey007  
    OP
       116 天前
    @hhacker 调稳定,就没打算升级,哈哈
    jackey007
        16
    jackey007  
    OP
       116 天前
    @rshun 不是的,我的测试都是在内网 ip 直连的
    jackey007
        17
    jackey007  
    OP
       116 天前
    @dototototo 好的,谢谢,我确认一下。Nextcloud 小白,请问后台检测结果要在哪里看?
    jackey007
        18
    jackey007  
    OP
       116 天前
    @bubbleteaclub 这个链接我打不开。但是这个应该不是问题,我内网测试的,max_execution_time=3600 ,这里不会超时。对了,请问您用得 NC 是哪个版本的?我的是 20.0.0 ,不止是不是后续版本解决了这个问题。我搜索报错信息,github 上有讨论过:
    https://github.com/nextcloud/server/issues/24558
    jackey007
        19
    jackey007  
    OP
       116 天前
    感谢大家的回复,我的问题解决了。最终的问题其实很简单。
    官方文档里关于 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 的文件同步,没有发现问题。
    再次感谢大家。
    bs10081
        20
    bs10081  
       116 天前
    @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
    neroxps
        21
    neroxps  
       116 天前 via iPhone
    @bs10081 seafile 客户端是本地客户端切片再上传。如果你试过同步多个 超过 6G 的单文件的话,同步速度是没有 nextcloud 或者群晖快。这不是性能局限了,是他存储模式必须切块,小文件切块很快,大文件就得等等了。
    web 端因为没有程序 必须服务器切块,所以就更局限了。
    但我是因为手机端实在受不住才放弃它的。
    jackey007
        22
    jackey007  
    OP
       115 天前
    @bs10081 您这个体验很细致。我的要求其实不高,只要同步稳定,不出错就行。负载的话,我的 NAS 是 8100CPU 和 16G 内存,就家人使用,客户端数量不超过 5 个,也基本不会同时同步大文件,所以不会有问题。要求很简单,但是要求部署好以后可以稳定运行。
    dototototo
        23
    dototototo  
       115 天前 via Android
    @jackey007 就是管理员后台概览那个页面,它有一些固定检测项目,没通过会有提示。
    dototototo
        24
    dototototo  
       115 天前 via Android
    发现已经解决了呀,恭喜~
    bs10081
        25
    bs10081  
       115 天前
    @jackey007 #22 家人使用的話,比較吃手機 App ,但是 Seafile 手機 App 又做的不好 QAQ ,NextCloud 的體驗又不佳💔
    ungrown
        26
    ungrown  
       112 天前
    @jackey007 #1 怎么说呢,虽然我没用过 nextcloud ,而且在用 seafile ,但我只能先提醒你,也许 seafile 比 nextcloud 好,但绝没有到能让你完全不闹心的程度。
    seafile 也会出现无法及时检测到文件变动、无法及时获取已更新文件、多个同步终端会频繁产生冲突文件……等等闹心问题,也是个需要哄、需要妥协、需要让步的主。
    实际上,这些开源方案都有不少的小毛病,可能 seafile 已经算这里面做得不错的了(毕竟有付费分支)
    我用的坚果云同步比 seafile 稳得多,但偶尔偶尔偶尔也会出些非常小的问题。

    当然,换 seafile 确实是值得的。
    linuxgo
        27
    linuxgo  
       109 天前
    nc 我用了很久了,中间也出现过一些 bug ,甚至无法上传文件,但是随着不断更新,现在问题越来越少了,app 同步文件的功能也很好用了,每次都是我刚用相机拍完一张照片,nc 就在后台开始上传了。
    seafile 看介绍说服务端采用加密方式,这个很危险哦,一旦那天 seafile 出问题了,那不是所有文件都报废了?而且像我的应用,在家里用的 samba ,出门才用 nc 。如果文件加密了,在家里 samba 就打不开了,没法用
    jackey007
        28
    jackey007  
    OP
       105 天前 via iPad
    更新一下,我把 php.ini 里的 output_buffering 设为 off 时,unas 的管理页面打不开,需要设置 htaccess 和.user.ini 为 output_buffering = OFF 。另外,在内网同步还是会报错,外网不会,限制上传速度为 10MB 以后解决,应该是上传速度过快导致的问题。目前使用良好,暂时未出现问题。
    bubbleteaclub
        29
    bubbleteaclub  
       96 天前
    @jackey007 我用的 24.0.1 ,好久没看 V2EX 了,发现已经解决啦,恭喜你
    lllong33
        30
    lllong33  
       24 天前
    大佬们, 请教一下
    lllong33
        31
    lllong33  
       24 天前
    大佬们, 请教一下, 写代码碰到的文件冲突怎么解决
    1. IDEA 写代码时会一直提示保存系统版本还是本地版本(file cache conflict)
    2. vscode 后会出现一些乱码
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2748 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.