通过宽带连接上传大型文件需要时间。上传前使用最大压缩率压缩文件也需要时间。
有没有办法可以同时压缩和上传文件到远程端?如果有,压缩时间将嵌入上传时间中。
例如压缩文件需要5分钟,上传压缩文件需要10分钟,则先执行压缩再上传的任务,大约需要15分钟。
如果使用压缩和上传的解决方案,可能只需要大约10分钟,因为上传速度通常比压缩慢。
答案1
这取决于您用于传输文件的协议。通常它已经透明地完成了。
HTTP(和 HTTPS)协议支持即时压缩,前提是服务器和客户端都实现了它。首先,客户端会让服务器知道它支持哪种类型的压缩。典型的 HTTP 请求标头包括一行,例如
Accept-Encoding: gzip, deflate
服务器将选择它支持的压缩算法,在 HTTP 标头中指示(如下所示)并提供压缩的内容。
Content-Encoding: gzip
大多数现代 HTTP 客户端(如 Chrome、Firefox、Internet Explorer、Safari 等,按字母顺序排列)和服务器(如 Apache、Microsoft IIS、nginx)在正确配置后都会即时传输压缩数据。
类似地,其他协议也可以实现压缩,例如 FTP 中的模式 Z。Microsoft 的远程差分压缩等专用协议允许通过仅传输不同部分来同步本地和远程文件。
编辑:
我发现透明 HTTP 压缩仅适用于文件下载,而不是相反。如果您希望压缩上传数据,您可能需要编写一些 Javascript,并使用FileReader
压缩库,例如compressjs
。