Zsync — утилита для передачи файлов на основе HTTP, эффективно передает большие файлы

Zsync — это утилита для передачи файлов с открытым исходным кодом, построенная на основе алгоритма rsync. Она помогает загружать частичные/дифференциальные файлы по протоколу HTTP. Утилита позволяет загружать только новые части файла из централизованного расположения, где старая версия файла уже находится на вашем компьютере.

В то время как rsync предназначен для синхронизации данных с одного компьютера на другой, zsync позволяет распространять файлы, когда файл, размещенный на сервере, использующем любой веб-сервер, может быть распространен среди многих и легко загружен.

Как это работает

Утилита командной строки будет выполнять все дифференциальные вычисления в клиенте, а не на сервере, как в rsync. Метаданные сервера будут созданы только один раз и сохранены как часть контрольного файла. А остальные операции и принятие решений будут выполняться клиентским приложением. Это позволит сократить объем обработки, необходимой на стороне сервера, даже если тысячи клиентов пытаются извлечь файл.

Zsync WorkFlow

Сервер

Сервер вычислит контрольную сумму и заранее создаст контрольный файл. Он содержит контрольные суммы, размер блока файла, длину и права доступа к файлу. Поскольку остальные сравнения выполняются на стороне клиента, на сервере не выполняется никаких вычислений контрольной суммы, и каждый раз клиент запрашивает данные.

Клиент

Клиент Zsync написан на «C» и способен сначала извлекать метаданные с сервера. Утилита сравнит данные текущей контрольной суммы файлов (сгенерированные rsync) и запросит оставшиеся данные с сервера.

Как создать файлы .zsync

Существует несколько способов создания и передачи файлов с использованием Zsync —

  • Передача сжатых файлов (gzip, tar и т. д.)

Запустив команду «zsyncmake» для целевого файла, утилита автоматически проверит сжатый файл и создаст файл .zsync для содержимого. Это одно из главных отличий от «rsync», который не поддерживает сжатые файлы. Если вы хотите поделиться сжатыми отдельными файлами, такими как rpm, deb и т. д. может не помочь использовать возможности zsync. В то же время это будет полезно для файлов ISO, которые содержат несколько типов файлов, и для каждый выпуск может иметь свои изменения.

  • Сжатие и передача

Zsyncmake способен сжимать файл в формате gzip перед передачей файлов. И этот вид сжатия будет лучше, чем использование любого стандартного инструмента сжатия, поскольку он может предложить лучшую эффективность передачи.

zsyncmake -z file-name

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

Пример Zsync — Загрузки Debian/Ubuntu ISO

Одним из лучших вариантов использования zsync является распространение ISO-образов Ubuntu/Debian в виде загрузок .zsync. Вы можете выбрать Ubuntu iso .zsync из приведенной ниже ссылки, и инструмент загрузит «только новые изменения в файл», не нужно загружать весь образ ISO.

Скачать с помощью zsync 

zsync http://releases.ubuntu.com/19.04/ubuntu-19.04-desktop-amd64.iso.zsync

Если вы загружаете этот файл в первый раз, вы сможете увидеть сообщения, как показано ниже, и начнется загрузка —

No relevant local data found - I will be downloading the whole file. If that's not what you want, CTRL-C out. You should specify the local file is the old version of the file to download with -i (you might have to decompress it with gzip -d first). Or perhaps you just have no data that helps download the file
downloading from http://releases.ubuntu.com/19.04/ubuntu-19.04-desktop-amd64.iso:

Ссылки

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

5 1 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments