跳到主要内容

文件传输卡在 100%:如何判断校验与最终处理是否完成

文件传输卡在 100% 可能仍在回读校验或完成目标端操作。通过日志、读取流量与验收结果,判断还有哪些工作尚未结束。

WarpSend 编辑团队 5 分钟阅读

传输进度到了 100%,网络流量降了下来,剪辑师却还在等素材。重新启动任务前,先确认百分比统计的是什么:它可能只记录已发送的数据量,而校验或目标端的最后一道操作仍在进行。

排查时,应分开看三个时间点:数据发送完毕、目标端操作完成,以及交付验收通过。这些时间点之间的差距,可以解释等待时间;它本身不能证明文件损坏或应用程序故障。

实际用户报告了什么

在 2026 年 7 月的 Synology 讨论中,一位 rclone 1.74.3 用户将加密数据复制到挂载的 SMB 共享目录,报告进度到 100% 后仍停留一段时间。贴出的日志最终显示校验和一致、复制完成;后续回复则继续描述其他测试。

这是特定配置下的案例,可以作为排查线索,不能据此推断所有 Synology 或加密传输都有相同原因。用户后来关闭校验和检查的实验,改变了实际执行的工作,因此不能视为达到同等校验程度的成功交付。

另一则 2026 年 3 月的较早报告呈现相反现象:rclone 1.73.2/1.73.3 在成功的 S3 服务端复制期间一直显示 0%。维护者后来指出 beta 版已有修复。这是历史上的进度显示案例,不代表当前版本仍有同样问题。

两个案例都说明,百分比必须结合操作内容解读。下一步是查看数字背后正在执行的工作。

先找出尚未完成的阶段

文件传输可能包含数个无法用字节计数完整表示的操作:

  • 读取并发送数据。 传输速度通常最容易反映这个阶段。
  • 检查目标端。 校验可能比对服务器提供的哈希值,也可能重新读取文件内容。
  • 完成目标端操作。 存储服务可能需要合并已上传的分片;客户端也可能仍在关闭文件或设置元数据。
  • 验收交付。 接收者确认必要文件齐全、校验通过,而且预定使用的应用程序能正常打开。

不同实现中的阶段可能重叠。应以日志判断当前执行的是哪道操作,不要把所有停顿都归因于校验和计算。

Amazon S3 提供了一个具体例子。CompleteMultipartUpload 文档说明,最终处理可能耗时数分钟,而且初始 HTTP 200 之后的响应正文仍可能包含错误。因此要看客户端的最终结果,不能只看分片已上传或初始响应。

对本地或挂载路径,也要检查最后的元数据操作。rclone 本地后端文档说明,复制后会更新修改时间,而 CIFS 挂载可能遇到权限问题。时间戳错误与长时间读取内容,需要不同的排查方向。

用实际活动缩小原因范围

下表是排查框架,不代表每个应用程序都已确认存在这些问题。

观察到的现象可能意味着什么下一步检查
字节数已到 100%,完成文件数却没有增加当前文件仍有操作未结束最后一条日志、校验状态与目标端响应
上传停止后,发送端开始接收大量数据可能正在回读目标端内容进行校验进程与网络计数,以及后端的哈希计算方式
目标端磁盘或 CPU 仍持续忙碌可能仍在计算哈希、写入或执行其他本地操作占用资源的进程及其日志
分片上传的完成请求仍在等待服务端可能还在做最终处理最终 API/客户端结果与错误
权限或时间戳错误反复出现元数据处理或重试行为目标端所有者、权限与确切失败操作
没有活动、没有完成结果,且持续超时可能是连接停滞或重试循环超时与错误历史;重试前先保存日志

发送端流量低,无法单独区分正常的服务端操作与停滞。同样,目录里能看到文件,也不能证明文件已完整写入。应确认任务成功结束,并取得约定的校验结果。

如果整个传输过程都慢,而不只在最后停留,请先参考上传瓶颈排查指南。

哈希在哪里计算,会改变校验成本

校验和是从文件内容计算出的摘要。两端的值都已存在时,比对成本很低;获取摘要本身则可能需要再读一次整个文件。

挂载的 SMB 路径,对传输应用程序可能看起来像本地路径,但数据实际存储在另一台机器上。若校验会读取这条路径,数据就可能再次经过网络。必须确认实际后端与配置:rclone 原生 SMB 后端,与指向挂载共享目录的本地后端,是两条不同路径,不能假设哈希行为相同。

rclone 的 SFTP 后端可以通过获准执行的远程 shell 命令,在目标端计算哈希。这可以避免将目标端整个文件传回来,但仍会消耗目标端的读取带宽与 CPU。受限制的 SFTP 账号不一定允许执行这些命令。

只有符合现有访问策略时,才选择这种配置。为了缩短校验时间而授予广泛的 shell 访问权,是另一项运维决策。若要改善数据传送阶段,可参考 SFTP 性能指南。

将校验时间纳入估算

以下是计算示例,不是实测:一个十进制 100 GB 文件,以有效速率 100 MB/s 传送,接着以 40 MB/s 完整读取一次进行校验,两个阶段不重叠。

阶段计算时间
数据传送100,000 MB / 100 MB/s16 分 40 秒
校验读取100,000 MB / 40 MB/s41 分 40 秒
合计1,000 + 2,500 秒58 分 20 秒

此估算不包含文件枚举、其他读取、重试与最终处理。缓存读取、服务器直接提供哈希、阶段重叠或较慢的硬件,都会改变结果。它说明的是:只用数据传送的 ETA,可能严重低估交付剩余时间。

校验副本时,保留原本需要的检查

验收前,保持源数据不变。现有 rclone 配置应选择符合后端能力的校验方式:

  • rclone check比对文件清单、大小与可用的兼容哈希。阅读输出,确认实际完成了哪些检查;只有大小一致,不能证明内容一致。
  • rclone checksum使用已保存的 SUM 清单比对目标端;必要时,可以通过 download 选项读取远程内容后计算哈希。
  • rclone cryptcheck用于加密远程存储的检查,底层存储必须支持哈希。规划时也要纳入读取与加密计算成本。

若无可用哈希,rclone check 的 --download 模式会读取内容进行比对。对大型远程数据集执行前,先估算额外网络流量与存储负载。

关闭校验和可能让进度更快结束,原因是少做了一项检查。如果要将传送与校验拆成不同的定时任务,应分别保存两者结果;校验尚未完成时,不应标记为已验收。

定义可用的完成条件

下次使用有代表性的数据交付时,记录三个时间:数据传送进度到终点、客户端报告成功,以及接收端完成校验。同时保存文件数、总字节数、错误与校验方式,每次测试只改一项配置。

摄影原始素材在完整性校验后,还要进行有代表性的打开或重新链接测试。远程素材交付指南说明了清单与验收流程。

如果最后的等待随文件大小与回读活动增加,应检查校验在哪里执行,以及该处的处理能力;若伴随明确错误,就处理该错误。这些观察能帮助你决定下一步,避免每次百分比停住就重新启动任务。