Resumable file transfer was added to Autosync for Google Drive (aka Drive Autosync or DriveSync). It’s in version 1.7.0 which is being rolled out on Google Play and should show up on user devices within a day or two.

When a file transfer is interrupted, Autosync for Google Drive will try again later, either automatically or as part of a manual sync invoked by the user. Before version 1.7.0 a new attempt restarted from the beginning of the file. It discarded all the bits which had been uploaded or downloaded in the previous failed attempt. It did so even in cases where a previous transfer had almost finished.

With resumable transfer Autosync for Google Drive remembers the position in the file where transfer was stopped. In the next attempt it resumes the transfer from that postion. A large download / upload may takes several attempts to complete but the app does not transfer any portions of the file more than once.

This feature is important for big files. Internet connection on mobile devices is not robust. Users walk around with their phones in their pockets. The connection between the phone and the Internet is often dropped and re-established. Big file transfer takes long time. If the app restarts from zero after each failed attempt, it would need to transfer more data than the size of the file. More data means longer transfer. Longer transfer means more chances for the connection to be dropped. Very large files (for example videos) may take days before they are completely transferred, if at all. The whole attempt / fail / attempt again / fail again / … endless cycle also keeps the phone awake and burns all the battery.

Resumable file transfer changes all this. Large transfer still takes time, but not more time than it’s absolutely necessary and more importantly even the large files will eventually be uploaded or downloaded. This feature dramatically increases sync reliability even when sync happens over flaky mobile Internet.

(P.S. Dropsync has been supporting resumable transfer for a long time. I am working to add it to OneSync.)