收起左侧

文件复制容错机制

1
回复
83
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

系统先锋体验团🛩️

2026-1-4 23:51:53 显示全部楼层 阅读模式

目前飞牛在复制或移动文件时,采用的是直接以原始文件名创建目标文件并写入数据的方式。
在正常情况下,如果在复制未完成时手动取消操作,未完成的文件会被系统删除,这个行为是符合预期的。
但在以下场景中会出现问题:
使用自动同步复制大文件时,由于复制过程中使用的文件名后缀不确定,无法在同步软件中设置有效的排除规则,容易导致同步状态异常。
在复制或移动过程中,如果发生内核级错误、系统死机、重启或意外断 电等异常中断,未复制完成的文件不会被删除,而是以完整文件名保留在目标目录中。
系统恢复正常后,再次进行复制或移动操作时,如果启用了「如果存在则跳过」:
系统会将该未复制完整的文件识别为已存在的同名文件
直接跳过写入并提示复制成功
实际上文件内容是不完整的,且无法通过该选项重新覆盖写入
在 T 级文件复制的场景下,一旦中途发生异常,重新复制只能选择整体覆盖数据,即使此前已经成功复制了 80% 的内容,也必须手动或者脚本查找并删除未完成传输的文件后才能重新复制,使用体验和可靠性都受到较大影响。

建议的改进方向:
在复制或移动未完成前,使用明确的临时后缀文件名(如 .fnostmp、.fnoscopying)
复制成功后再重命名为原始文件名
当发生异常中断时,保留临时文件名,后续复制时「如果存在则跳过」应忽略此类临时文件
可选的进一步优化包括:
通过文件大小或 MD5 / SHA 校验判断文件完整性
在系统异常恢复后,对未完成的复制任务进行清理或标记处理
这样可以避免未完整复制的文件被误认为已完成文件,同时也能改善自动同步和异常恢复场景下的可靠性。

收藏
送赞
分享

6

主题

1万

回帖

0

牛值

管理员

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-1-13 16:20:13 显示全部楼层
谢谢你的建议,我们会将它记录下来,期待后续评估结果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则