В рамках моей работы мне регулярно нужно загружать большие файлы (например, от 512 МБ до 1 ГБ ISO). В некоторых случаях очень небольшие изменения от ISO к ISO (например, файл размером 10 МБ в ISO размером 1 ГБ). К сожалению, я не могу просто отправить измененный файл - мне нужно отправить весь ISO. Более быстрое соединение не является допустимым решением.
Есть ли какой-нибудь инструмент (желательно Linux, желательно бесплатный), который может создавать и применять различия таких больших двоичных файлов?
Я использую для этого xdelta, другие используют rdiff. Оба работают хорошо.
BSDiff более эффективен.
http://www.daemonology.net/bsdiff/ "bsdiff и bspatch - это инструменты для создания и применения исправлений к двоичным файлам. Используя суффиксную сортировку (в частности, qsufsort Ларссона и Садакана) и пользуясь тем, как изменяются исполняемые файлы, bsdiff обычно создает двоичные исправления на 50-80% меньше, чем те, которые создаются Xdelta, и на 15% меньше, чем у .RTPatch (коммерческий инструмент исправлений стоимостью 2750 долл. США за место) ».
Мы используем rdiff для репликации моментальных снимков базы данных на сервер резервного копирования в удаленных офисах каждый час. Уже несколько месяцев он работает неплохо.
Все, что вам нужно, это rdiff и cygwin1.dll, и все готово.
Можно ли синхронизировать файлы? Это поможет найти небольшие двоичные различия.