电话咨询
微信咨询
199 6386 0417
扫码添加客服

文件本地编辑优化提案220718号

2022-07-20 13:11:00
高玉浩
原创
2164

悦库网盘文件本地编辑功能历史悠久,且广受用户欢迎,是网盘核心功能。


什么是文件本地编辑

在网盘客户端中直接点击文件自动下载到缓存位置,并使用本地默认程序打开,本地编辑完成后可自动上传到网盘中。


问题分析

问题现象
最近我们收到用户反馈:“本地编辑中连续保存.xlsx格式文件时自动上传的文件低几率损坏现象。”
我们非常重视文件数据可靠性,立即进行确认并讨论解决方案。
问题原因
本地编辑220517号提案中,我们说明了文件的上传时机:
文件以读写方式本地打开后,网盘会一直监控文件的保存时间,如果发生变更则自动上传。
文件上传过程是先创建文件任务,加入上传队列,然后再执行上传,这是一个异步操作。
当上传任务创建成功后,文件内容随时可能被用户保存,这就导致了上传任务的文件信息和实际上传的文件内容不一致,可能造成最终文件大小或内容信息错误。
由于用户保存文件的行为是不定时发生的,因此不能假设任意时间文件数据是完整可靠的,极端情况下,文件正在写入过程中也可能被上传,这有几率会造成上传的文件不完整。

解决方法

在以上的情景分析中,我们发现问题的根本原因就是文件上传同时用户对其进行保存。如果上传过程中文件处于一种"静止"状态(用户不更新),那么整个上传流程必然是安全可靠的。



探测静止状态

确认文件的静止状态,需要对已保存文件进行静止探测,这需要两个固定时间段(8秒/时间段)才能得出结论。

“探测点1”确认文件内容已保存。
“探测点2”确认文件保存后处于静止状态,认为文件内容在当前时段是静止的,距上次保存后一段时间没有再发生过保存行为。
创建文件快照
文件静止状态确认后,将文件复制到临时目录,复制完成后,需要检测快照复制期间,原文件是否被再次保存,如果已保存则放弃快照。如果没有保存则保留快照,并将快照加入上传队列,由于快照是静止的,所以上传内容的可靠得以保证。
上传静止文件

静止文件快照加入上传后,无论上传结果成功或失败,完成后直接删除。


发布时间

在本提案中使用对本地编辑文件进行“静止状态”探测的方法,保证了上传文件内容的可靠性,该提案的实现预计在2022年7月底于4.8.2版中发布。
发表评论
评论通过审核后显示。
联系我们
联系人: 高先生
电话: 19963860417
Email: service@ydisk.cn
QQ: 480247680
微信: 19963860417
地址: 青岛市黄岛区井冈山路157号中南金石国际广场A座3202室