Mais confiabilidade nos uploads com a detecção de interrupções
Embora a maioria dos nossos uploads complete com sucesso sua jornada pela world wide web, às vezes algum deles pode se perder pelo caminho.
Isso acontece porque a web é, por assim dizer, um lugar perigoso, e as coisas se perdem com frequência entre roteadores e provedores de internet. Isso, por sua vez, faz com que essas conexões excedam o tempo limite. Claro que algumas pessoas também simplesmente não têm sorte com a velocidade de upload da conexão de casa, o que pode levá-las a fechar a aba do navegador por impaciência.
Tentamos ajudar nesse último caso mostrando informações sobre o progresso do upload em todos os navegadores, para que as pessoas possam estimar o tempo necessário e fazer outra coisa enquanto isso. Isso parece funcionar muito bem. Até agora, apenas 1,7% dos nossos uploads excederam o tempo limite ou foram interrompidos.
No entanto, até agora, não conseguíamos detectar em que momento um upload ficava parado, e isso
significava que continuávamos exibindo o status 'ASSEMBLY_UPLOADING' para sempre. Obviamente
isso não era o ideal, então finalmente decidimos trabalhar um pouco no nosso
parser de uploads feito à mão. Como resultado, agora conseguimos
detectar esses uploads malsucedidos e marcá-los como 'REQUEST_ABORTED'.
Daqui para frente, também vamos distinguir entre uploads que excedem o tempo limite e pessoas que fecham as abas do navegador. Porém, para que isso seja possível, primeiro precisamos incorporar um patch ao núcleo do Node.js.
Por fim, também marcamos todos os uploads que estavam parados anteriormente como
'REQUEST_ABORTED' no nosso site.
Aproveite!
Atualização: desde a publicação deste post, a Transloadit desenvolveu e lançou o tus, um protocolo aberto para uploads de arquivos retomáveis. Planejamos integrar totalmente o tus ao serviço da Transloadit o quanto antes, tornando os uploads interrompidos coisa do passado.
