lingochamp / okdownload

A Reliable, Flexible, Fast and Powerful download engine.
Apache License 2.0
5.19k stars 776 forks source link

优化建议:下载过程中使用的temp file,而不是targetFile。 #386

Open Raynor999 opened 4 years ago

Raynor999 commented 4 years ago

OkDownload Version

v1.0.7

优化建议,下载过程写入临时文件,下载成功后将临时文件移动到目标文件。

这一点还是比较重要,且有意义的。 很多场景会判断文件是否存在,来决定是否需要下载。目前Okdownload 的实现会先生成成目标文件,然后写入。 没有中间temp 文件,这导致目标文件存在,但不能保证文件是下载好的。 而且下载因为一些异常产生的一些垃圾文件,没有很好的办法找到去清除他们。

不知道或者有没有建议的修改方案建议,目前因为源码设计到多点并行下载,一时不是很好之前修改源码,来实现需求

HolenZhou commented 4 years ago

附议,我现在是下载成功后,再copy下载后的文件到另一个地方

ChaiChai210 commented 4 years ago

我测试了下载工程中删除好像会错乱,重新建task好像不会生成新的文件。

Carlos2927 commented 4 years ago

我碰到过图片下载不完全(显示时一半黑屏)但是回调确是下载成功的情况,一直想解决这个问题

Joursion commented 4 years ago

我碰到过图片下载不完全(显示时一半黑屏)但是回调确是下载成功的情况,一直想解决这个问题

所以这是框架的问题嘛。。目前项目好多地方都是离线场景,出现许多次大图片异常,哎

GMWONG commented 4 years ago

+1,和以前一样搞一个temp文件,下载好了再重名

cgzwyy commented 2 months ago

设置了临时文件之后,判断状态的时候需要判断两个文件名,一个最终文件名是不是下载完成状态,不是的话,再判断临时文件名的文件是不是pending状态,是这样吧