Fiabiliser les téléversements grâce à la détection des abandons
Si la plupart de nos téléversements parviennent à bon port à travers le Web, il arrive parfois que l’un d’entre eux se perde en chemin.
C’est que le Web est un endroit dangereux, pour ainsi dire, et que des données se perdent souvent entre les routeurs et les FAI. Les connexions concernées finissent alors par expirer. Bien sûr, certaines personnes n’ont tout simplement pas de chance avec le débit montant de leur connexion domestique, ce qui peut les amener à fermer l’onglet de leur navigateur par impatience.
Nous essayons d’aider dans ce dernier cas en affichant la progression du téléversement dans tous les navigateurs, afin que chacun puisse estimer le temps nécessaire et faire autre chose en attendant. Cela semble plutôt bien fonctionner. Jusqu’à présent, seuls 1,7 % de nos téléversements ont expiré ou ont été abandonnés.
Cependant, jusqu’ici, nous ne pouvions pas détecter à quel moment un téléversement se bloquait, si
bien que nous continuions d’afficher indéfiniment le statut 'ASSEMBLY_UPLOADING'. Ce
n’était évidemment pas idéal, et nous avons donc fini par retravailler un peu notre
analyseur de téléversements fait maison. Résultat : nous sommes
désormais en mesure de détecter ces téléversements malchanceux et de les marquer comme
'REQUEST_ABORTED'.
À l’avenir, nous saurons également distinguer les téléversements qui expirent des cas où l’utilisateur ferme l’onglet de son navigateur. Pour que cela soit possible, nous devons toutefois d’abord faire intégrer un correctif au cœur de Node.js.
Enfin, nous avons également marqué comme 'REQUEST_ABORTED' tous les téléversements
précédemment bloqués sur notre site web.
Bonne utilisation !
Mise à jour : depuis la rédaction de cet article, Transloadit a développé et publié tus, un protocole ouvert pour la reprise des téléversements de fichiers. Nous prévoyons d’intégrer pleinement tus au service Transloadit dès que possible, ce qui fera des téléversements abandonnés de l’histoire ancienne.
