3

Загрузка большого файла через широкополосное соединение занимает много времени. Сжать файл, используя макс. Степень сжатия перед загрузкой также потребляет время.

Есть ли какое-либо решение, которое может одновременно сжимать и загружать файлы на удаленный конец? Если это так, время сжатия включается в время загрузки.

Например, сжатие файла занимает 5 минут, а загрузка сжатого файла - 10 минут. Он выполняет сжатие с последующей загрузкой, это занимает около 15 минут.

При использовании решения, которое сжимает и загружает, это может занять около 10 минут, поскольку скорость загрузки обычно ниже, чем сжатие.

1 ответ1

3

Это зависит от протокола, который вы используете для передачи файлов. Обычно это уже сделано прозрачно.

Протокол HTTP (и HTTPS) поддерживает сжатие «на лету» при условии, что его реализуют как сервер, так и клиент. Прежде всего, клиент сообщит серверу, какой тип сжатия он поддерживает. Типичный заголовок HTTP-запроса содержит следующую строку:

Accept-Encoding: gzip, deflate

Сервер выберет алгоритм сжатия, который он поддерживает, укажет в HTTP-заголовке (как показано ниже) и предоставит сжатое содержимое.

Content-Encoding: gzip

Большинство современных HTTP-клиентов (таких как Chrome, Firefox, Internet Explorer, Safari и т.д. В алфавитном порядке) и серверов (таких как Apache, Microsoft IIS, nginx) при правильной настройке передают сжатые данные на лету.

Аналогично, другие протоколы могут реализовывать сжатие, например, режим Z в FTP. Специализированные протоколы, такие как удаленное разностное сжатие от Microsoft, позволяют синхронизировать локальные и удаленные файлы, передавая только разные части.


РЕДАКТИРОВАТЬ:

Я обнаружил, что прозрачное HTTP-сжатие предназначено только для загрузки файлов, но не наоборот. Если вы хотите сжать данные для загрузки, вам может понадобиться написать некоторый Javascript и использовать FileReader и библиотеку сжатия, например compressjs .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .