Voici tus 1.0 pour des téléversements fiables avec reprise
Cela fait un moment que nous n’avons pas parlé de tus, mais il y a eu quelques évolutions intéressantes et nous aimerions vous rafraîchir la mémoire.
Alors oui, le téléversement est défaillant
Chez Transloadit, nous tenons à fournir un service de téléversement fiable. Il peut cependant arriver que nos serveurs se comportent mal, qu’un utilisateur mobile change de connexion ou que votre utilisateur final ait un Wi-Fi instable.
Nous faisons toujours notre possible pour limiter ce genre de cas, mais nous devons aussi faire face à la dure réalité : trop souvent, un téléversement doit être relancé depuis le début.
Cela nuit à l’expérience utilisateur, surtout lorsque cela se produit en plein milieu d’un téléversement de 2 GB sur une mauvaise connexion. Pire encore, plus un téléversement dure longtemps, plus il reste exposé à cette mauvaise connexion.
Avec des médias toujours plus volumineux et des réseaux qui restent fragiles, il nous faut une meilleure façon de gérer ces coupures et ces aléas.
Téléversements avec reprise
Même si toute bibliothèque réseau digne de ce nom implémente des nouvelles tentatives, il reste beaucoup à améliorer. Idéalement, les nouvelles tentatives reprendraient là où l’utilisateur s’est arrêté et n’enverraient que les octets restants dès que la connexion est rétablie.
Si cela se fait en coulisses, pour ainsi dire, l’utilisateur pourrait même ne pas remarquer que sa connexion a été interrompue, puisque la durée totale du téléversement en serait à peine affectée.
De plus, si nous pouvions repenser cela de manière à envoyer plusieurs parties d’un fichier simultanément, le téléversement pourrait même devenir plus rapide.
Cependant, pour que tout cela fonctionne, il nous faut d’abord des téléversements avec reprise.
De nombreux logiciels et diverses implémentations proposent déjà des téléversements avec reprise, mais ils ne sont pas aussi complets ni aussi interopérables que nous le souhaiterions. Ils parlent tous un dialecte différent.
Imaginez que chaque navigateur web ait son propre dialecte HTTP incompatible. Nous ne pensons pas que ce soit ainsi qu’un web ouvert devrait fonctionner.
Mille projets incompatibles d’une semaine qui fonctionnent à peine, alors que nous n’avons besoin que d’un seul vrai projet, bien fait.
Et c’est exactement ce qu’est tus.
tus
tus est un protocole ouvert en développement depuis plus d’un an, avec des contributions de haut niveau venues du monde entier et de différentes entreprises, comme Vimeo.
Voici un exemple de simple échange entre un client et un serveur capables de parler le brouillon de la préversion de tus 1.0. Les noms d’en-têtes ont changé avant la version finale ; pour les nouvelles intégrations, consultez la spécification actuelle du protocole :
Client :
POST /files HTTP/1.1
Host: tus.example.org
Content-Length: 0
Entity-Length: 100
TUS-Resumable: 1.0.0
Metadata: filename d29ybGRfZG9taW5hdGlvbl9wbGFuLnBkZg==
Serveur :
HTTP/1.1 201 Created
Location: https://tus.example.org/files/24e533e02ec3bc40c387f1a0e460e216
TUS-Resumable: 1.0.0
Client :
PATCH /files/24e533e02ec3bc40c387f1a0e460e216 HTTP/1.1
Host: tus.example.org
Content-Type: application/offset+octet-stream
Content-Length: 30
Offset: 0
TUS-Resumable: 1.0.0
[first 30 bytes]
Serveur :
HTTP/1.1 204 No Content
TUS-Resumable: 1.0.0
En plus d’être un protocole léger et bien documenté, tus fournit également deux implémentations d’exemple :
Par ailleurs, la communauté propose de nombreuses implémentations dans des langages comme iOS, Android, Ruby, Node.js, Python, PHP, etc. Comme nous construisons tus sur du HTTP standard, il est très simple de créer des implémentations dans votre langage préféré. Si vous implémentez entièrement le protocole et le publiez sous licence MIT, nous envisagerons certainement d’adopter votre projet.
Bientôt 1.0 : dernier appel à commentaires
La nouvelle du jour, c’est que nous sommes vraiment
sur le point de publier une version 1.0
stable du protocole et de nos implémentations de référence. C’est pourquoi nous lançons un dernier
appel à commentaires sur notre
pull request 1.0 sur GitHub.
N’hésitez pas. Nous serions ravis de recevoir vos commentaires et recommandations pour rendre tus 1.0 encore meilleur.
Enfin, nous encourageons toutes les personnes qui gèrent des téléversements (oui, les concurrents aussi) à jeter un œil à tus et à envisager de l’utiliser pour leur prochaine version. Même si tus a été lancé et financé par Transloadit, il appartient entièrement à la communauté et cela ne changera jamais.
Chez Transloadit, nous chercherons cette année à implémenter tus dans notre service de téléversement et d’encodage.
Vos commentaires sont les bienvenus sur Hacker News
