Opened at 2008-01-28T19:05:27Z
Last modified at 2011-07-27T18:17:34Z
#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: |
Description
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
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
We have Content-Range now, but the implementation is not ideal. In the long run we want a downloader with full efficient random access.