#288 new enhancement

resumption of interrupted downloads

Reported by: warner Owned by: warner
Priority: major Milestone: soon
Component: code-encoding Version: 0.7.0
Keywords: download partial usability random-access Cc:
Launchpad Bug:


It would be nice if file downloads that were interrupted (by a network flap) could be resumed without losing all the previous download progress.

The first step is to implement seek() in the !IDownloadable interface.

The second step is to figure out how exactly users would want to exercise this. It depends upon which interface they're using, as we need somewhere to put the partially-downloaded file.

One likely answer is that we should implement the HTTP "Content-Range" header, since then a web browser doing a file download is likely to notice the partially-downloaded data and ask for just the remaining segment.

Change History (10)

comment:1 Changed at 2008-03-08T02:14:49Z by zooko

  • Milestone changed from 0.8.0 (Allmydata 3.0 Beta) to undecided

comment:2 Changed at 2009-03-24T20:15:51Z by warner

  • Component changed from code-network to code-encoding

comment:3 Changed at 2009-03-24T20:16:39Z by warner

We have Content-Range now, but the implementation is not ideal. In the long run we want a downloader with full efficient random access.

comment:4 Changed at 2009-12-20T17:37:40Z by davidsarah

  • Keywords usability random-access added

comment:5 Changed at 2010-02-27T06:42:40Z by zooko

  • Milestone changed from eventually to 1.7.0
  • Owner set to warner

comment:6 Changed at 2010-06-16T04:00:32Z by davidsarah

  • Milestone changed from 1.7.0 to 1.8.0

comment:7 Changed at 2010-08-10T03:52:25Z by davidsarah

To what extent does the New Downloader in 1.8 address this for immutable files?

(For mutable files, Kevan's downloader for MDMF will support random access.)

comment:8 Changed at 2010-08-11T07:21:52Z by warner

I think the #798 new-downloader resolves this issue for immutable files. If you use "curl" or a web browser's download tool that is clever enough to spot a resumed download and issue an appropriate Range header, then tahoe should do the minimal amount of work necessary to satisfy that request.

It's worth some testing, though. We may have to provide/process the right set of ETag headers to make it work correctly (If-Match?), so there still may be some work to do.

And yeah, MDMF is the place for this for mutable files, although the same ETag header questions also apply.

comment:9 Changed at 2010-08-21T20:54:22Z by davidsarah

  • Milestone changed from 1.8.0 to 1.9.0

comment:10 Changed at 2011-07-27T18:17:34Z by zooko

  • Milestone changed from 1.9.0 to soon
Note: See TracTickets for help on using tickets.