Cargar un archivo grande a través de una conexión de banda ancha lleva tiempo. Comprime el archivo usando max. La relación de compresión antes de la carga también consume tiempo.
¿Existe alguna solución que pueda comprimir y cargar archivos en un extremo remoto al mismo tiempo? Si es así, el tiempo de compresión está incluido en el tiempo de carga.
Por ejemplo, comprimir el archivo tarda 5 minutos y cargar el archivo comprimido tarda 10 minutos. Realiza la tarea de comprimir seguida de la de carga; tarda unos 15 minutos.
Si utiliza una solución que comprime y carga, puede tardar solo unos 10 minutos, ya que la velocidad de carga suele ser más lenta que la de comprimir.
Respuesta1
Depende del protocolo que esté utilizando para transferir archivos. Normalmente ya se hace de forma transparente.
El protocolo HTTP (y HTTPS) admite la compresión sobre la marcha, siempre que tanto el servidor como el cliente la implementen. En primer lugar, el cliente le informará al servidor qué tipo de compresión admite. El encabezado de solicitud HTTP típico incluye una línea como
Accept-Encoding: gzip, deflate
El servidor elegirá un algoritmo de compresión que admita, lo indicará en el encabezado HTTP (como se muestra a continuación) y entregará el contenido comprimido.
Content-Encoding: gzip
La mayoría de los clientes HTTP modernos (como Chrome, Firefox, Internet Explorer, Safari, etc., en orden alfabético) y servidores (como Apache, Microsoft IIS, nginx), cuando se configuran correctamente, transfieren datos comprimidos sobre la marcha.
De manera similar, otros protocolos pueden implementar compresión, por ejemplo, el Modo Z en FTP. Los protocolos especializados, como la compresión diferencial remota de Microsoft, permiten sincronizar archivos locales y remotos transfiriendo solo la parte diferente.
EDITAR:
Descubrí que la compresión HTTP transparente es solo para descarga de archivos, pero no al revés. Si desea comprimir datos para cargarlos, es posible que necesite escribir algo de Javascript y utilizar FileReader
una biblioteca de compresión como compressjs
.