Metalink es un formato de archivo de metadatos extensible que describe uno o más archivos informáticos disponibles para su descarga . Especifica los archivos adecuados para el idioma y el sistema operativo del usuario ; facilita la verificación de archivos y la recuperación de datos dañados ; y enumera fuentes de descarga alternativas ( URI espejo ).
Los metadatos se codifican en campos de encabezado HTTP o en un archivo XML con extensión .meta4 o .metalink . Las ubicaciones de descarga duplicadas garantizan la fiabilidad en caso de que falle un método. Algunos clientes también logran velocidades de descarga más rápidas al permitir la descarga simultánea de diferentes fragmentos o segmentos de cada archivo desde múltiples recursos (descarga segmentada).
Metalink admite la visualización de múltiples hashes de archivos parciales y completos, junto con firmas PGP . Sin embargo, la mayoría de los clientes solo admiten la verificación de MD5 , SHA-1 y SHA-256 . Además de las ubicaciones de espejos FTP y HTTP y rsync , también admite la visualización de los métodos P2P BitTorrent , ed2k , enlaces magnet o cualquier otro que utilice una URI .
Historia del desarrollo
Metalink 3.0 se lanzó públicamente en 2005. Fue diseñado para ayudar a descargar imágenes ISO de Linux y otros archivos grandes el día del lanzamiento, cuando los servidores estarían sobrecargados (cada servidor tendría que ser probado manualmente) y para reparar descargas grandes reemplazando solo las partes con errores en lugar de volver a descargarlas por completo. Inicialmente fue adoptado por gestores de descargas y fue utilizado por proyectos de código abierto como OpenOffice.org y distribuciones de Linux . Se desarrolló una comunidad en torno a él, más programas de descarga lo soportaron (incluidos los propietarios) y tuvo una adopción comercial. En 2008, la comunidad llevó su trabajo a la Internet Engineering Task Force , lo que dio como resultado Metalink 4.0 en 2010, descrito en un RFC de Standards Track . [ 1 ] Metalink 3.0 (con la extensión .metalink ) y Metalink 4.0 (con la extensión .meta4 ) son incompatibles porque tienen un formato ligeramente diferente. En 2011, otro RFC de Standards Track describió Metalink en campos de encabezado HTTP . [ 2 ]
Programas para clientes
Bibliotecas de clientes
- libmetalink ( Licencia MIT ) es una biblioteca de Metalink escrita en C. Proporciona el análisis de archivos XML de Metalink a programas escritos en C y utiliza Expat (biblioteca) o libxml2 . No gestiona la descarga real de archivos. Obsoleto en cURL . [ 9 ] [ 10 ]
- metalink-checker ( GPL ) es un descargador de línea de comandos escrito en Python que admite descargas desde múltiples fuentes y sumas de verificación de fragmentos, además de verificar réplicas. También puede utilizarse como una biblioteca de Python .
En uso
Mandriva Linux ha integrado Metalink en la gestión de paquetes con urpmi y aria2. Fedora ha integrado Metalink en la gestión de paquetes con yum . openSUSE ha integrado Metalink en la gestión de paquetes con ZYpp y aria2.
Wubi , el instalador de Ubuntu para Windows , utiliza Metadl ( LGPL ) para descargar imágenes ISO de Ubuntu y aprovecha las ventajas de Metalink, como su mayor disponibilidad y fiabilidad. Si se producen errores durante la descarga, estos se corrigen en lugar de reiniciar la descarga.
Appupdater ( GPL ) para Windows "es similar a apt-get o yum en Linux. Automatiza el proceso de instalación y mantenimiento de versiones actualizadas de programas".
Actualmente, OpenOffice.org utiliza Metalinks para distribuir su suite ofimática gratuita. cURL ofrece enlaces Metalink para sus descargas. El Consorcio UniProt también proporciona un enlace Metalink para su extensa base de datos de proteínas. Dofus , un MMORPG Flash, utiliza Metalinks para las descargas, al igual que SageMath , el software matemático de código abierto.
Según el sitio principal metalinker.org, la plataforma de alojamiento y colaboración de software Origo genera Metalinks para todas las versiones alojadas. [ 11 ]
Las siguientes distribuciones de Linux utilizan Metalink para la distribución de imágenes ISO : Adios, Bayanihan Linux, BeleniX , Berry Linux , BLAG Linux y 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 .
Las siguientes distribuciones basadas en FreeBSD utilizan Metalink para la distribución de imágenes ISO : DesktopBSD , MidnightBSD y TrueOS .
Comparación de las características del cliente Metalink
Una guía sobre qué clientes admiten qué funciones de Metalink:
En este momento, ningún cliente es compatible con rsync .
Generación Metalink
Metalink tiene formato XML, por lo que puede crearse manualmente o con una biblioteca XML, lo que resulta útil para la automatización. Estas herramientas están diseñadas específicamente para Metalink.
- Bouncer es una aplicación de gestión de réplicas basada en bases de datos que consta de tres componentes principales: un script de reinicio, un script de vigilancia para comprobar la integridad de las réplicas y los archivos, y un conjunto de herramientas de administración web. Bouncer es compatible con Metalink mediante un parche que aún no se ha integrado en la versión principal.
- Geo McFly ( GPL ) es un generador de metalinks en tiempo real basado en la ubicación geográfica del usuario que realiza la descarga, escrito en Python .
- Metalink Editor (GPL) es un editor de Metalink con interfaz gráfica de usuario (GUI) multiplataforma escrito en Python que permite crear y editar Metalinks.
- Metalink Library (GPL) es una biblioteca multiplataforma de Metalink para Python y PHP basada en Metalink Editor con muchas funciones automáticas y una interfaz de línea de comandos sencilla para generar archivos Metalink y Torrent.
- Metalink Generator también se puede utilizar para crear Metalinks rellenando un formulario web.
- Herramientas Metalink (GPL) Herramientas de línea de comandos para Unix/Windows para generar Metalinks con hashes y listas de espejos/P2P.
- Metalinks dinámicos en línea basados en metadatos. Metalinks creados automáticamente a partir de los metadatos publicados por cada servidor espejo.
- MirrorManager ( licencia MIT X11 ) es utilizado por el Proyecto Fedora para listar dinámicamente los espejos.
- MirrorBrain ( GPL , Licencia Apache ) es un generador de Metalinks en tiempo real y un redireccionador de descargas. Puede devolver Metalinks o redirigir automáticamente a los clientes que no los utilizan (mediante redirección HTTP) a un servidor espejo cercano. Admite la negociación transparente de Metalinks, la incrustación de firmas PGP, Metalink/HTTP y otras funciones avanzadas. Lo utilizan, por ejemplo, openSUSE y OpenOffice.org .
Ejemplo de archivo .meta4 de Metalink 4.0
Los archivos de Metalink 4.0 tienen la extensión .meta4 y son archivos de texto XML . Se sirven con el tipo de medio de Internet application/metalink4+xml .
<?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> Ejemplo </identity> <version> 1.0 </version> <language> en </language> <description> Una descripción del archivo de ejemplo para descargar. </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>Ejemplos de campos de encabezado de Metalink/HTTP
Metalink, en los campos de encabezado HTTP, utiliza campos de encabezado HTTP estándar existentes , como ETags , campos de encabezado Link (para espejos y P2P) e Instance Digests (para hashes).
Etag: "thvDyvhfIqlvFe+A9MYgxAfm1q5=" Enlace: <http://www2.example.com/example.ext>; rel=duplicate Enlace: <ftp://ftp.example.com/example.ext>; rel=duplicate Enlace: <http://example.com/example.ext.torrent>; rel=describedby; type="application/x-bittorrent" Enlace: <http://example.com/example.ext.meta4>; rel=describedby; type="application/metalink4+xml" Enlace: <http://example.com/example.ext.asc>; rel=describedby; type="application/pgp-signature" Resumen: SHA-256=MWVkMWQxYTRiMzk5MDQ0MzI3NGU5NDEyZTk5OWY1ZGFmNzgyZTJlODYzYjRjYzFhOTlmNTQwYzI2M2QwM2U2MQ==
Ejemplo de archivo .metalink de Metalink 3.0
Los archivos de Metalink 3.0 tienen la extensión .metalink y son archivos de texto XML .
<?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>Véase también
Referencias
- ^ Bryan, Anthony; Tsujikawa, Tatsuhiro; McNab, Neil; Poeml, Peter (junio de 2010). El formato de descripción de descarga de Metalink . IETF . doi : 10.17487/RFC5854 . RFC 5854. Recuperado el 30 de mayo de 2022 .
- ^ Bryan, Anthony; McNab, Neil; Tsujikawa, Tatsuhiro; Poeml, Peter; Nordstrom, Henrik (junio de 2011). Metalink/HTTP: Mirrors and Hashes . IETF . doi : 10.17487/RFC6249 . RFC 6249. Consultado el 30 de mayo de 2022 .
- ^ Tsujikawa, Tatsuhiro. "aria2: La utilidad de descarga de próxima generación" . GitHub . Consultado el 30 de mayo de 2022 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ "Búsqueda de paquetes" . Arch Linux . 21/08/2021 . Consultado el 30/05/2022 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ "Aria2 Client 1.36.0" . Chocolatey . 2021-08-21 . Consultado el 2022-05-30 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ "metalink: remove" . GitHub . 7 de junio de 2021.
- ^ "NOTICIAS - wget.git - GNU Wget" . cgit.git.savannah.gnu.org . Consultado el 6 de septiembre de 2025 .
- ^ downthemall. "Soporte de Metalink · Problema n.° 86 · downthemall/downthemall" . GitHub . Consultado el 6 de septiembre de 2025 .
- ^ Stenberg, Daniel (2021-06-07). "Adiós metalink en curl" . daniel.haxx.se . Consultado el 2025-09-05 .
- ^ curl. "metalink: remove · curl/curl@265b14d" . GitHub . Consultado el 5 de septiembre de 2025 .
- ^ "Metalinker.org - Cerrando la brecha" . www.metalinker.org . Consultado el 5 de julio de 2025 .
- ^ "SmartFTP - Características" . SmartFTP . Consultado el 30 de mayo de 2022 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
Enlaces externos
- Almacenamiento de datos distribuido
- gestores de descarga
- Software de red basado en el protocolo de Internet
- Estándares basados en XML