Niederländisches Linux Magazine über fortsetzbare Uploads mit tus

Wir freuen uns, mitteilen zu können, dass tus, unser offener Standard für fortsetzbare Datei-Uploads, in der aktuellen Monatsausgabe des niederländischen Linux Magazine vorgestellt wurde. Der ursprüngliche Artikel ist auf Niederländisch; eine Übersetzung folgt weiter unten.
tus - ein neues offenes Internetprotokoll
Wahrscheinlich ist Ihnen das schon einmal passiert: Sie möchten eine recht große Datei hochladen, doch plötzlich bricht Ihre Verbindung ab und der Upload wird abgebrochen. Sobald die Verbindung wiederhergestellt ist, müssen Sie wieder von vorne beginnen. Wirklich ärgerlich. An vielen Orten der Welt ist die Lage so schlimm, dass die Verbindung alle fünf Minuten abbricht. Ganz gleich, wie oft Sie es erneut versuchen, der Empfänger erhält jedes Mal nur den ersten Teil.
2009 habe ich Transloadit zusammen mit zwei Jungs aus Berlin gegründet. Es ist ein Onlinedienst zum Hochladen und Encoding von Dateien. Wir bemerkten immer mehr Beschwerden über fehlgeschlagene Uploads, während unsere eigene Plattform stabil lief. Der Grund war, dass Videodateien immer größer wurden, während die Qualität der Netzverbindungen hinterherhinkte. Im Kern versuchen wir, dieselben Brücken zu überqueren, tragen dabei aber zehnmal so viel Gepäck. Tunnel, Keller, Bars, dünn besiedelte Gegenden, gierige Telekommunikationsanbieter und WLAN-Störungen, sie alle sorgten für reichlich Hindernisse.
Die Idee
Da wir an den Dingen, die dieses Problem verursachen, wenig ändern konnten, suchten wir nach einer Lösung, die ihnen besser standhält: „tus“. Damit konnten wir einen Upload an genau der Stelle fortsetzen, an der er abgebrochen war, sobald die Verbindung wiederhergestellt war. Wenn wir es zwanzigmal versuchten, dabei aber jedes Mal die nächsten 5 % übertragen konnten, dann wurde die gesamte Datei übertragen. Die Nutzerinnen und Nutzer mussten die Unterbrechungen nicht einmal bemerken, denn es waren „fortsetzbare“ Uploads.
Fortsetzbar
Downloads sind bereits seit HTTP-Version 1.1 fortsetzbar. Für Uploads gab es jedoch keinen offenen Standard. Es gab eine Reihe von Projekten, doch ihnen fehlte eine gemeinsame Sprache. Häufig verfolgten sie ein kommerzielles Ziel oder waren auf die eigene Situation zugeschnitten. Es ist, als gäbe es keine NFL und jedes Footballteam spielte nach seinen eigenen Regeln.
Wir sind nur ein kleines Unternehmen. Indem wir das Protokoll als Open Source veröffentlicht haben, erhielten wir Mitarbeit von Entwicklern unter anderem bei Google, Node.js, HTTP/1.1 und ZeroMQ. Wir sind außerdem sehr stolz darauf, dass Vimeo „tus“ einsetzen wird. Nicht nur für Uploads auf die eigene Plattform, sondern wegen der höheren Geschwindigkeit, die „tus“ bietet, auch für die Dateiübertragung zwischen den eigenen Servern. Vimeo hat uns zudem einen Entwickler zur Verfügung gestellt, der uns dabei hilft, „tus“-Implementierungen in weiteren Sprachen zu bauen. Diese große Bereitschaft zur Zusammenarbeit hat „tus“ stärker gemacht. Für das Protokoll ist es wichtig, dass viele Menschen es implementieren, selbst unsere Wettbewerber.
Wir glauben, dass das Internet dadurch für alle besser wird. Wir hoffen, dass es weiterhin genügend Unternehmen gibt, die die hochwertige Verarbeitung ihrer Uploads lieber auslagern, und dass sie sich dann für die Quelle, Transloadit, entscheiden. Und falls nicht, haben unsere bestehenden Kunden zumindest die beste Lösung.
(S)FTP und BitTorrent
Es gibt gewisse Überschneidungen zwischen „tus“ und anderen Protokollen. „tus“ baut jedoch auf HTTP auf und ist daher mit bestehenden Browsern und Servern kompatibel, ohne dass große Bibliotheken oder zusätzliche Firewall-Freigaben nötig sind. Dadurch lässt es sich auch problemlos mit SSL, Load Balancern und Proxys kombinieren. „tus“ ist ein Dokument, das Regeln dazu enthält, wie fortsetzbare Uploads funktionieren sollen. Es ist nur dann etwas wert, wenn Entwickler diese Regeln in ihrer Software einhalten. Erst dann entsteht eine „Sprache“, die von den Maschinen allgemein gesprochen wird, und alle haben dann zuverlässige Uploads. Wir helfen dabei ein wenig nach, indem wir Implementierungen in allen wichtigen Programmiersprachen kostenlos bereitstellen. „tus“ ist im Kern zudem klein und bietet optionale Erweiterungen wie „concat“, das ähnlich wie BitTorrent Dateien in kleinere Teile zerlegen und diese dann gleichzeitig senden kann. So wird eine Verbindung voll ausgenutzt, Uploads sind schneller fertig, und wir können Obergrenzen für die maximale Upload-Größe umgehen, die manche Systeme vorgeben.
Fazit
„tus“ ist produktionsreif. Werfen Sie einen Blick auf https://tus.io, wahrscheinlich haben wir bereits eine Implementierung für Ihre bevorzugte Plattform. Und falls nicht, können wir Ihre Hilfe gut gebrauchen! Melden Sie sich gerne bei uns, wenn Sie zu „tus“ beitragen möchten.
Niederländische Leserinnen und Leser können das Magazin ab heute am Kiosk kaufen und auf Seite 25 alles über tus in ihrer Muttersprache lesen, ebenso wie weitere spannende Neuigkeiten aus der Open-Source-Community.
