Carregar um arquivo grande por meio de uma conexão de banda larga leva tempo. Compacte o arquivo usando max. taxa de compactação antes do upload também consome tempo.
Existe alguma solução que possa compactar e fazer upload de arquivos para um terminal remoto ao mesmo tempo? Se isso acontecer, o tempo de compactação será incorporado ao tempo de upload.
Por exemplo, compactar o arquivo leva 5 minutos e carregar o arquivo compactado leva 10 minutos. Realiza a compactação seguida da tarefa de upload, leva cerca de 15 minutos.
Se estiver usando uma solução que compacta e carrega, pode levar apenas cerca de 10 minutos, pois a velocidade de upload geralmente é mais lenta do que a compactação.
Responder1
Depende do protocolo que você está usando para transferir arquivos. Geralmente isso já é feito de forma transparente.
O protocolo HTTP (e HTTPS) suporta compactação dinâmica, desde que tanto o servidor quanto o cliente o implementem. Em primeiro lugar, o cliente informará ao servidor qual tipo de compactação ele suporta. O cabeçalho de solicitação HTTP típico inclui uma linha como
Accept-Encoding: gzip, deflate
O servidor escolherá um algoritmo de compactação compatível, indicará no cabeçalho HTTP (conforme abaixo) e servirá o conteúdo compactado.
Content-Encoding: gzip
A maioria dos clientes HTTP modernos (como Chrome, Firefox, Internet Explorer, Safari etc., em ordem alfabética) e servidores (como Apache, Microsoft IIS, nginx), quando configurados corretamente, transferem dados compactados dinamicamente.
Da mesma forma, outros protocolos podem implementar compactação, por exemplo, Modo Z em FTP. Protocolos especializados, como o Remote Differential Compression da Microsoft, permitem sincronizar arquivos locais e remotos transferindo apenas a parte diferente.
EDITAR:
Descobri que a compactação HTTP transparente serve apenas para download de arquivos, mas não o contrário. Se você deseja compactar dados para upload, pode ser necessário escrever algum Javascript e usar FileReader
uma biblioteca de compactação como compressjs
.