Existe alguma solução / utilitários para compactar e carregar um arquivo grande simultaneamente?

3

Carregar um arquivo grande via conexão de banda larga leva tempo. Comprima o arquivo usando no máximo taxa de compressão antes do upload também consome tempo.

Existe alguma solução que possa compactar e carregar o arquivo no final remoto ao mesmo tempo? Em caso afirmativo, o tempo de compactação é incorporado no tempo de envio.

Por exemplo, compactar o arquivo leva 5 minutos e carregar o arquivo de compactação leva 10 minutos. Ele executa a tarefa de compactação seguida de upload, demora cerca de 15 minutos.

Se você estiver usando uma solução que compacta e carrega, pode levar cerca de 10 minutos apenas, pois a velocidade de upload é geralmente mais lenta que a compactação.

    
por Chau Chee Yang 03.07.2014 / 11:40

1 resposta

3

Depende do protocolo que você está usando para transferir arquivos. Geralmente isso já é feito de forma transparente.

O protocolo HTTP (e HTTPS) suporta a compressão imediata, desde que o servidor e o cliente a implementem. Primeiro de tudo, o cliente permitirá que o servidor saiba 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 selecionará um algoritmo de compactação suportado, indicará no cabeçalho HTTP (como 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, estão transferindo dados compactados imediatamente.

Similarmente, outros protocolos podem implementar a compressão, por ex. Modo Z no FTP. Protocolos especializados, como a Compactação Diferencial Remota da Microsoft, permitem a sincronização de arquivos locais e remotos transferindo apenas a parte diferente.

EDITAR:

Descobri que a compactação HTTP transparente é apenas para download de arquivos, mas não o contrário. Se você deseja compactar dados para upload, talvez seja necessário escrever um pouco de Javascript e usar FileReader e a biblioteca de compactação como compressjs .

    
por 03.07.2014 / 12:03