my idea would be to progress like this:
0) Download the .metalink file
1) Process .metalink XML file and download from one URL for each <file>
2) Verify whole file checksum
3) Verify each chunk with chunk checksums; re-download error chunks
4?) Multi-source downloads: use multiple mirrors to download one file
I'm assuming reading the XML and doing a checksum of the whole file
would be possible & quite easy considering Firefox's current features.
what about checksumming just part of the file. I know Firefox doesn't
support multi-source downloads, that's not a required feature.
the metalink bug is https://bugzilla.mozilla.org/show_bug.cgi?id=331979
thanks for any help! Mozilla people are more than welcome to join in
with ideas & suggestions for metalink too.
(( Anthony Bryan ... Metalink [ http://www.metalinker.org ]
)) Easier, More Reliable, Self Healing Downloads
here's more info too:
----
Metalink is a cross-platform and cross-application open
standard/framework/file format for programs that download, including
download managers, BitTorrent clients, Web browsers, FTP clients, and
P2P programs. 30+ apps support it, including KGet in KDE 4.0 and
DownThemAll 1.0 beta (Firefox extension). Metalink is frequently used
for large file downloads like ISOs, for adding multiple files to a
download queue, or for automatic file verification or repair of errors
during downloads.
For increased convenience, it stores the multiple download locations
for a file (FTP/HTTP/P2P) in a single metafile with the extension
.metalink. This provides reliability in case one method fails. It can
also be used for multi-source downloads. Metalink supports listing
multiple partial and full file checksums along with PGP
signatures.
Here's a screenshot of a Ubuntu ISO metalink about to be downloaded
with DownThemAll: http://www.metalinker.org/images/dta_ubuntu.png
An example .metalink file:
<?xml version="1.0" encoding="UTF-8" ?>
<metalink version="3.0" xmlns="http://metalinker.org">
<files>
<file name="example.ext">
<verification>
<hash type="md5">example-md5-hash</hash>
<hash type="sha1">example-sha1-hash</hash>
</verification>
<resources>
<url type="ftp" location="us"
preference="90">ftp://ftp.example.com/example.ext</url>
<url type="ftp" location="uk"
preference="90">ftp://ftp.example.net/example.ext</url>
<url type="http" location="us"
preference="90">http://example.com/example.ext</url>
<url type="http" location="de"
preference="90">http://example.net/example.ext</url>
<url type="bittorrent"
preference="100">http://example.org/example.ext.torrent</url>
</resources>
</file>
</files>
</metalink>
Those interested, please check out the site at
http://www.metalinker.org/ and our discussion mailing list at
http://groups.google.com/group/metalink-discussion
The second part can be accomplished with the download manager I'd
imagine.
> 2) Verify whole file checksum
I think Edward Lee did something like this (Mardak on irc)
> 3) Verify each chunk with chunk checksums; re-download error chunks
Same as above
> 4?) Multi-source downloads: use multiple mirrors to download one file
Not sure how doable this is.
Cheers,
Shawn Wilsher
thanks for the info, Shawn.
it's good to know what's possible and what might not be. multi-source
downloads aren't important.
http://www.downthemall.net/
http://www.metalinker.org/
I'm told to be included it would probably need to get the support of
either the Firefox module owner (mconnor) or the Toolkit module owner
(bsmedberg).
Popular Linux distributions like openSUSE and Ubuntu are making use of
Metalink:
http://download.opensuse.org/distribution/11.0/iso/cd/
http://releases.ubuntu.com/8.04/
Metalink can be tested out with the DownThemAll! Firefox Addon and about
20 other download programs:
Thanks for your time everyone!
--
(( Anthony Bryan ... Metalink [ http://www.metalinker.org ]
)) Easier, More Reliable, Self Healing Downloads