Upload-Zuverlässigkeit durch Erkennung abgebrochener Uploads
Die meisten unserer Uploads schließen ihre Reise durch das World Wide Web erfolgreich ab, doch manchmal geht einer unterwegs verloren.
Das liegt daran, dass das Web sozusagen ein gefährlicher Ort ist und Dinge häufig zwischen Routern und Internetanbietern verloren gehen. Das führt dann dazu, dass diese Verbindungen in einen Timeout laufen. Natürlich haben manche Menschen auch einfach Pech mit der Uplink-Geschwindigkeit ihres Heimanschlusses, was dazu führen kann, dass sie den Browser-Tab ungeduldig schließen.
Beim Letzteren versuchen wir zu helfen, indem wir in allen Browsern Informationen zum Upload-Fortschritt bereitstellen, damit Nutzerinnen und Nutzer die benötigte Zeit abschätzen und in der Zwischenzeit etwas anderes tun können. Das scheint recht gut zu funktionieren. Bislang sind nur 1,7 % unserer Uploads in einen Timeout gelaufen oder abgebrochen worden.
Bis jetzt konnten wir jedoch nicht erkennen, ab welchem Zeitpunkt ein Upload stehen bleibt, und das
bedeutete, dass wir den Status 'ASSEMBLY_UPLOADING' endlos weiter angezeigt haben. Das war
offensichtlich nicht ideal, also haben wir uns endlich entschlossen, ein wenig an unserem
handgefertigten Upload-Parser zu arbeiten. Dadurch können wir diese
unglücklichen Uploads nun erkennen und als 'REQUEST_ABORTED' markieren.
Künftig werden wir auch den Unterschied zwischen Uploads erkennen, die in einen Timeout laufen, und Menschen, die ihren Browser-Tab schließen. Damit das möglich ist, müssen wir jedoch zuerst einen Patch im Kern von Node.js unterbringen.
Zum Schluss haben wir auf unserer Website außerdem alle zuvor hängen gebliebenen Uploads als
'REQUEST_ABORTED' markiert.
Viel Freude damit!
Update: Seit dem Verfassen dieses Beitrags hat Transloadit tus entwickelt und veröffentlicht, ein offenes Protokoll für fortsetzbare Datei-Uploads. Wir planen, tus so bald wie möglich vollständig in den Transloadit-Service zu integrieren, sodass abgebrochene Uploads endgültig der Vergangenheit angehören.
