Existe alguma solução/utilitário para compactar e fazer upload de um arquivo grande simultaneamente?

Existe alguma solução/utilitário para compactar e fazer upload de um arquivo grande simultaneamente?

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 FileReaderuma biblioteca de compactação como compressjs.

informação relacionada