Hi,

This has been discussed briefly before:

http://mail-archives.apache.org/mod_mbox/cordova-dev/201311.mbox/%3CCAK_TSX+dKpLr7vCCacN9kMv1d0=wn2z1dfapheyeam3r_dv...@mail.gmail.com%3E

Problem is when using the FileTransfer plugin to download a file, if the file is interrupted it will get automatically deleted. This is what happens on Android (FileTransfer.java line 948):

// Remove incomplete download.
if (!cached && result.getStatus() != PluginResult.Status.OK.ordinal() && file != null) {
    file.delete();
}

This will make it impossible to resume from where the file left off, and on many networks/situations for a lot of people in countries / areas where the networks are not so good the probability of ever succeeding at downloading a sizeable (e.g. 30MB+) file will be very low and it would waste a lot of bandwidth.

It is true that resume is a complex business and perhaps out of the scope of such a plugin (what happens when file changes, how many retries, etc). If we had just an option like keepIncompleteDownload which would default to false this (ie. keep the current behaviour) would allow developers to implement their own logic in Javascript to handle resume if they wish to - e.g. try the download again, sending a range header, to another file and at the end concatenate all the file pieces together.

I have to make a working version of this behaviour for an app we currently develop just for Android; so I can write that behaviour there. I don't see any tests that describe the desired behaviour in this scenario.

Would be interested to see if anyone else has any alternative suggestions.

Regards,

-Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to