文件本地编辑优化提案220718号
- 2022-07-20 13:11:00
- 高玉浩 原创
- 2754
悦库网盘文件本地编辑功能历史悠久,且广受用户欢迎,是网盘核心功能。
什么是文件本地编辑
在网盘客户端中直接点击文件自动下载到缓存位置,并使用本地默认程序打开,本地编辑完成后可自动上传到网盘中。
问题分析
问题现象
最近我们收到用户反馈:“本地编辑中连续保存.xlsx格式文件时自动上传的文件低几率损坏现象。”
我们非常重视文件数据可靠性,立即进行确认并讨论解决方案。
问题原因
文件以读写方式本地打开后,网盘会一直监控文件的保存时间,如果发生变更则自动上传。
文件上传过程是先创建文件任务,加入上传队列,然后再执行上传,这是一个异步操作。
当上传任务创建成功后,文件内容随时可能被用户保存,这就导致了上传任务的文件信息和实际上传的文件内容不一致,可能造成最终文件大小或内容信息错误。
由于用户保存文件的行为是不定时发生的,因此不能假设任意时间文件数据是完整可靠的,极端情况下,文件正在写入过程中也可能被上传,这有几率会造成上传的文件不完整。
解决方法
在以上的情景分析中,我们发现问题的根本原因就是文件上传同时用户对其进行保存。如果上传过程中文件处于一种"静止"状态(用户不更新),那么整个上传流程必然是安全可靠的。
探测静止状态
确认文件的静止状态,需要对已保存文件进行静止探测,这需要两个固定时间段(8秒/时间段)才能得出结论。
“探测点1”确认文件内容已保存。
“探测点2”确认文件保存后处于静止状态,认为文件内容在当前时段是静止的,距上次保存后一段时间没有再发生过保存行为。
创建文件快照
文件静止状态确认后,将文件复制到临时目录,复制完成后,需要检测快照复制期间,原文件是否被再次保存,如果已保存则放弃快照。如果没有保存则保留快照,并将快照加入上传队列,由于快照是静止的,所以上传内容的可靠得以保证。
上传静止文件
静止文件快照加入上传后,无论上传结果成功或失败,完成后直接删除。
发布时间
发表评论
联系我们
联系人: | 高先生 |
---|---|
电话: | 19963860417 |
Email: | service@ydisk.cn |
QQ: | 480247680 |
微信: | 19963860417 |
地址: | 青岛市黄岛区井冈山路157号中南金石国际广场A座3202室 |