Metalink ist ein erweiterbares Metadatendateiformat , das eine oder mehrere zum Download verfügbare Computerdateien beschreibt. Es spezifiziert Dateien , die für die Sprache und das Betriebssystem eines Benutzers geeignet sind ; erleichtert die Dateiverifizierung und -wiederherstellung bei Datenbeschädigung ; und listet alternative Downloadquellen ( Mirror -URIs ) auf.
Die Metadaten werden in HTTP-Header-Feldern und/oder in einer XML- Datei mit der Erweiterung .meta4 oder .metalink kodiert . Die redundanten Download-Speicherorte gewährleisten Zuverlässigkeit, falls eine Methode ausfällt. Einige Clients erzielen zudem höhere Download-Geschwindigkeiten, indem sie das gleichzeitige Herunterladen verschiedener Teile/Segmente jeder Datei von mehreren Quellen ermöglichen (segmentiertes Herunterladen).
Metalink unterstützt die Auflistung mehrerer partieller und vollständiger Dateihashes sowie PGP - Signaturen. Die meisten Clients unterstützen jedoch nur die Überprüfung von MD5 , SHA-1 und SHA-256 . Neben FTP- und HTTP- Mirror- Servern und rsync werden auch P2P-Methoden wie BitTorrent , ed2k , Magnet-Links und alle anderen Methoden, die eine URI verwenden , unterstützt .
Entwicklungsgeschichte
Metalink 3.0 wurde 2005 veröffentlicht. Es wurde entwickelt, um das Herunterladen von Linux- ISO-Images und anderen großen Dateien am Veröffentlichungstag zu vereinfachen, da die Server dann überlastet sein würden (jeder Server musste manuell getestet werden). Außerdem sollte es große Downloads reparieren, indem nur die fehlerhaften Teile ersetzt wurden, anstatt sie komplett neu herunterzuladen. Metalink wurde zunächst von Download-Managern übernommen und von Open-Source -Projekten wie OpenOffice.org und Linux-Distributionen verwendet . Es bildete sich eine Community, immer mehr Download-Programme (auch proprietäre) unterstützten es, und es fand kommerzielle Verbreitung. 2008 wandte sich die Community an die Internet Engineering Task Force (IETF ), woraus 2010 Metalink 4.0 entstand, das in einem Standards Track RFC beschrieben wurde . [ 1 ] Metalink 3.0 (mit der Dateiendung .metalink ) und Metalink 4.0 (mit der Dateiendung .meta4 ) sind inkompatibel, da sie ein leicht unterschiedliches Format verwenden. 2011 beschrieb ein weiterer Standards Track RFC Metalink in HTTP-Header-Feldern . [ 2 ]
Kundenprogramme
| Werkzeug | Debian-basiert | Fedora-basiert | Arch-basiert | BSD-basiert | Windows |
|---|---|---|---|---|---|
| aria2 [ 3 ] | Ja | Ja | Ja [ 4 ] | Ja [ 5 ] | |
| cURL [ 6 ] | NEIN | NEIN | NEIN | NEIN | NEIN |
| Wget [ 7 ] | Ja | Ja | Ja | Ja | Ja |
| DownThemAll [ 8 ] | NEIN | NEIN | NEIN | NEIN | NEIN |
| jDownloader | nicht im Repository | nicht im Repository | nicht im Repository | nicht im Repository | |
| KGet | Ja | Ja | Ja | Ja | NEIN |
| Phex | nicht im Repository | nicht im Repository | nicht im Repository | nicht im Repository | |
| SmartFTP | nicht im Repository | nicht im Repository | nicht im Repository | nicht im Repository | |
| easyMule | nicht im Repository | nicht im Repository | nicht im Repository | nicht im Repository | |
| ZYpp | nicht im Repository | nicht im Repository | nicht im Repository | nicht im Repository |
Clientbibliotheken
- libmetalink ( MIT-Lizenz ) ist eine in C geschriebene Metalink-Bibliothek . Sie ermöglicht das Parsen von Metalink-XML-Dateien für in C geschriebene Programme und verwendet Expat (Bibliothek) oder libxml2 . Das Herunterladen der Dateien selbst wird nicht von ihr übernommen. In cURL als veraltet markiert . [ 9 ] [ 10 ]
- metalink-checker ( GPL ) ist ein in Python geschriebener Kommandozeilen-Downloader , der Downloads von mehreren Quellen und Chunk-Prüfsummen sowie die Überprüfung von Spiegelservern unterstützt. Er kann auch als Python- Bibliothek verwendet werden.
Im Einsatz
Mandriva Linux hat Metalink mit urpmi und aria2 in die Paketverwaltung integriert . Fedora hat Metalink mit yum in die Paketverwaltung integriert . openSUSE hat Metalink mit ZYpp und aria2 in die Paketverwaltung integriert .
Wubi , der Windows-basierte Ubuntu- Installer, verwendet Metalink ( LGPL ) zum Herunterladen von Ubuntu -ISO-Images und profitiert von dessen höherer Verfügbarkeit und Zuverlässigkeit. Sollten beim Download Fehler auftreten, werden diese behoben, anstatt den Download erneut durchzuführen.
Appupdater ( GPL ) für Windows „ist ähnlich wie apt-get oder yum unter Linux. Es automatisiert den Prozess der Installation und Aktualisierung von Programmversionen.“
OpenOffice.org nutzt derzeit Metalinks für die Verbreitung seiner kostenlosen Office-Suite. Auch cURL bietet Metalinks für seine Downloads an. Das UniProt- Konsortium stellt ebenfalls einen Metalink für seine umfangreiche Proteindatenbank bereit. Dofus , ein Flash- MMORPG, und SageMath , die Open-Source-Mathematiksoftware, verwenden Metalinks für ihre Downloads.
Laut der Hauptseite metalinker.org generiert die Software-Hosting- und Kollaborationsplattform Origo Metalinks für alle gehosteten Releases. [ 11 ]
Die folgenden Linux- Distributionen verwenden Metalink für die ISO-Image- Verteilung: Adios, Bayanihan Linux, BeleniX , Berry Linux , BLAG Linux und GNU , Bluewhite64 Linux, Damn Small Linux , Fedora , GoboLinux , Granular Linux , KateOS , Linux Mint , openSUSE , Pardus Linux , PCLinuxOS , PuppyLinux , Sabayon Linux , StartCom Enterprise Linux, SUSE Linux , Ubuntu .
Die folgenden FreeBSD- basierten Distributionen verwenden Metalink für die ISO-Image- Verteilung: DesktopBSD , MidnightBSD und TrueOS .
Vergleich der Funktionen des Metalink-Clients
Eine Übersicht, welche Clients welche Metalink-Funktionen unterstützen:
| Kunde | wget | cURL | Runter mit ihnen allen! | Kostenloser Download-Manager | GetRight | KGet | Phex | SmartFTP |
|---|---|---|---|---|---|---|---|---|
| Lizenzierung | Freie Software ( GNU General Public License ) | Freie Software ( MIT/X-abgeleitete Lizenz ) | Freie Software ( GNU General Public License ) | Freie Software ( GNU General Public License ) | Proprietär / 29,95 $ für Standard, 49,95 $ für Pro | Freie Software ( GNU General Public License ) | Freie Software ( GNU General Public License ) | Proprietär / Kostenlose 30-Tage-Testversion Mehrere Ausgaben/39,99 $ Professionell |
| Schnittstelle | CLI | CLI | GUI | GUI | GUI | GUI | GUI | GUI |
| Metalink 4.0 | Ja | Ja | Ja | NEIN | NEIN | Ja | NEIN | Ja |
| Läuft unter Linux | Ja | Ja | Ja | NEIN | NEIN | Ja | Ja | NEIN |
| Läuft unter Windows | Ja | Ja | Ja | Ja | Ja | NEIN | Ja | Ja |
| Läuft unter Mac OS X | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | NEIN |
| Lebenslauf-Downloads | ? | Ja | Ja | Ja | Ja | Ja | Ja | Ja [ 12 ] |
| Segmentierte Downloads | ? | ? | Ja | Ja | Ja | Ja | Ja | NEIN |
| Unterstützung mehrerer Dateien | ? | ? | Ja | Ja | Ja | Ja | Ja | Ja |
| "Standort" | ? | ? | Ja | NEIN | NEIN | NEIN | NEIN | NEIN |
| Betriebssystem | ? | ? | Ja | Ja | NEIN | NEIN | NEIN | NEIN |
| Sprache | ? | ? | Ja | NEIN | NEIN | NEIN | NEIN | NEIN |
| HTTP mit transparenter Verhandlung | ? | ? | Ja | NEIN | NEIN | NEIN | NEIN | NEIN |
| Metalink/HTTP | ? | ? | NEIN | NEIN | NEIN | NEIN | NEIN | NEIN |
| HTTP | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| FTP | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| BitTorrent | ? | NEIN | Ja | Ja | Ja | NEIN | NEIN | |
| Magnet | ? | ? | NEIN | NEIN | NEIN | NEIN | Ja | NEIN |
| MD5-Hashes | ? | Ja | Ja | Ja | Ja | Ja | Ja | |
| SHA-1-Hashes | ? | Ja | Ja | Ja | Ja | Ja | Ja | |
| SHA-256-Hashes | ? | Ja | Ja | NEIN | NEIN | NEIN | Ja | |
| Stück Hashes | ? | ? | NEIN | NEIN | NEIN | NEIN | NEIN | NEIN |
| PGP-Signaturen | ? | ? | NEIN | NEIN | NEIN | NEIN | NEIN | NEIN |
Derzeit wird rsync von keinem Client unterstützt .
Metalink-Generation
Metalink ist im XML-Format, sodass es entweder manuell erstellt oder mithilfe einer XML-Bibliothek generiert werden kann, was für die Automatisierung nützlich ist. Diese Tools sind speziell für Metalink entwickelt.
- Bouncer ist eine datenbankgestützte Anwendung zur Spiegelserververwaltung mit drei Hauptkomponenten: einem Bounce-Skript, einem Sentry-Skript zur Überprüfung der Integrität von Spiegelservern und Dateien sowie webbasierten Verwaltungstools. Bouncer unterstützt Metalink über einen Patch, der noch nicht in den Hauptzweig integriert wurde.
- Geo McFly ( GPL ) ist ein in Python geschriebener On-the-fly-Generator von Metallinks basierend auf dem geografischen Standort des Nutzers .
- Metalink Editor (GPL) ist ein plattformübergreifender GUI-Metalink-Editor, der in Python geschrieben ist und mit dem Sie Metalinks erstellen und bearbeiten können.
- Die Metalink Library (GPL) ist eine plattformübergreifende Metalink-Bibliothek für Python und PHP, die auf dem Metalink Editor basiert und über viele automatische Funktionen sowie eine einfache Befehlszeilenschnittstelle zur Generierung von Metalink- und Torrent-Dateien verfügt.
- Mit dem Metalink Generator lassen sich auch Metallinks erstellen, indem man ein Webformular ausfüllt.
- Metalink-Tools (GPL) Unix/Windows-Befehlszeilentools zum Generieren von Metalinks mit Hashes und Mirror-/P2P-Listen.
- Dynamische Online-Metallinks basierend auf Metadaten. Automatisch erstellte Metalinks basierend auf den von jedem Mirror veröffentlichten Metadaten.
- MirrorManager ( MIT X11-Lizenz ) wird vom Fedora-Projekt zum dynamischen Auflisten von Spiegelservern verwendet.
- MirrorBrain ( GPL , Apache-Lizenz ) ist ein Echtzeit-Metalink-Generator und Download-Redirector. Er kann entweder Metalinks zurückgeben oder Nicht-Metalink-Clients (per HTTP-Weiterleitung) automatisch auf einen nahegelegenen Mirror-Server umleiten. Transparente Aushandlung von Metalinks, Einbettung von PGP-Signaturen, Metalink/HTTP und weitere erweiterte Funktionen werden unterstützt. MirrorBrain wird beispielsweise von openSUSE und OpenOffice.org verwendet .
Beispiel einer Metalink 4.0 .meta4-Datei
Metalink 4.0-Dateien haben die Dateiendung .meta4 und sind XML- Textdateien. Sie werden mit dem Internet-Medientyp application/metalink4+xml ausgeliefert .
<?xml version="1.0" encoding="UTF-8"?> <metalink xmlns= "urn:ietf:params:xml:ns:metalink" > <published> 2009-05-15T12:23:23Z </published> <file name= " example.ext" > <size> 14471447 </size> <identity> Beispiel </identity> <version> 1.0 </version> <language> en </language> <description> Eine Beschreibung der Beispieldatei zum Herunterladen . </description> <hash type= "sha-256" > 3d6fece8033d146d8611eab4f032df738c8c1283620fd02a1f2bfec6e27d590d </hash> <url location= "de" priority= "1" > ftp://ftp.example.com/example.ext </url> <url location= "fr" priority= "1" > http://example.com/example.ext </url> <metaurl mediatype= "torrent" priority= "2" > http://example.com/example.ext.torrent </metaurl> </file> </metalink>Beispielhafte Metalink/HTTP-Headerfelder
Metalink nutzt in HTTP-Header-Feldern vorhandene Standard -HTTP-Header-Felder wie ETags , Link-Header-Felder (für Spiegelserver und P2P) und Instance Digests (für Hashes).
Etag: "thvDyvhfIqlvFe+A9MYgxAfm1q5=" Link: <http://www2.example.com/example.ext>; rel=duplicate Link: <ftp://ftp.example.com/example.ext>; rel=duplicate Link: <http://example.com/example.ext.torrent>; rel=describedby; type="application/x-bittorrent" Link: <http://example.com/example.ext.meta4>; rel=describedby; type="application/metalink4+xml" Link: <http://example.com/example.ext.asc>; rel=describedby; type="application/pgp-signature" Digest: SHA-256=MWVkMWQxYTRiMzk5MDQ0MzI3NGU5NDEyZTk5OWY1ZGFmNzgyZTJlODYzYjRjYzFhOTlmNTQwYzI2M2QwM2U2MQ==
Beispiel einer Metalink 3.0 .metalink-Datei
Metalink 3.0-Dateien haben die Dateiendung .metalink und sind XML- Textdateien.
<?xml version="1.0" encoding="UTF-8"?> <metalink version= "3.0" xmlns= "http://www.metalinker.org/" > <files> <file name= "example.ext" > <verification> <hash type= "md5" > example-md5-hash </hash> <hash type= "sha1" > example-sha1-hash </hash> <signature type= "pgp" /> </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> <url type= "rsync" /> <url type= "magnet" /> <url type= "ed2k" /> </resources> </file> </files> </metalink>Siehe auch
Referenzen
- ^ Bryan, Anthony; Tsujikawa, Tatsuhiro; McNab, Neil; Poeml, Peter (Juni 2010). The Metalink Download Description Format . IETF . doi : 10.17487/RFC5854 . RFC 5854. Abgerufen am 30.05.2022 .
- ^ Bryan, Anthony; McNab, Neil; Tsujikawa, Tatsuhiro; Poeml, Peter; Nordstrom, Henrik (Juni 2011). Metalink/HTTP: Mirrors and Hashes . IETF . doi : 10.17487/RFC6249 . RFC 6249. Abgerufen am 30. Mai 2022 .
- ^ Tsujikawa, Tatsuhiro. „aria2: Das Download-Tool der nächsten Generation“ . GitHub . Abgerufen am 30.05.2022 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ „Paketsuche“ . Arch Linux . 21.08.2021 . Abgerufen am 30.05.2022 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ „Aria2 Client 1.36.0“ . Chocolatey . 21.08.2021 . Abgerufen am 30.05.2022 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ "metalink: remove" . GitHub . 2021-06-07.
- ^ "NEWS - wget.git - GNU Wget" . cgit.git.savannah.gnu.org . Abgerufen am 06.09.2025 .
- ^ downthemall. „Metalink-Unterstützung · Problem Nr. 86 · downthemall/downthemall“ . GitHub . Abgerufen am 06.09.2025 .
- ^ Stenberg, Daniel (07.06.2021). „Bye bye metalink in curl“ . daniel.haxx.se . Abgerufen am 05.09.2025 .
- ^ curl. "metalink: remove · curl/curl@265b14d" . GitHub . Abgerufen am 05.09.2025 .
- ^ „Metalinker.org – Die Lücke schließen“ . www.metalinker.org . Abgerufen am 05.07.2025 .
- ^ „SmartFTP – Funktionen“ . SmartFTP . Abgerufen am 30.05.2022 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link )