(ОК, не кричите на меня, здесь очень поздно :))
Я исследую инструменты разностного различия (инструменты или компоненты командной строки, это не имеет значения, пока я могу позвонитьих от Delphi 2010 )
У меня есть этот проект, в который я загружаю файлы на сервер, мне нужно оптимизировать загрузку, и было бы здорово, если бы я мог загружать только дельта-файл вместоотправка нового файла, а затем сравнение обеих старых и новых версий файлов на сервере.
Я читал о Duplicity здесь
Duplicity - это разновидность rdiff-резервное копирование, которое позволяет выполнять резервное копирование без взаимодействия с сервером хранения, как с простыми сервисами хранения, такими как Amazon S3.Он работает, заранее генерируя хеши для каждого блока, шифруя их и сохраняя их на сервере, а затем извлекая их при инкрементном резервном копировании.Остальные данные также хранятся в зашифрованном виде в целях безопасности.
Это заставило меня задуматься, есть ли инструмент (или способ) для создания патча или дельта-файла (я не уверен, чтоправильный термин:) на основании нового файла, без , имеющего доступ к исходному файлу?
Я имею в виду, скажем, у меня есть этот файл, который я однажды изменил:
my-data.db
[ my-data.db ] modified --> [ delta-file-1.diff ]
Есть ли способ создать [delta-file-1.diff] на основе нового файла без доступа к старому файлу?(может быть, путем сохранения какой-то подписи для исходного файла?)
Я много исследовал эту тему (rdiff, PatchAPI, ZDelta, XDelta, MSDelta и т. д.), но я не могу найтилюбой реальный рабочий пример по этому вопросу.
Эти ссылки говорят об этом, но я хотел бы услышать, может ли кто-нибудь помочь мне и / или предложить лучшие инструменты, которые отвечают на вопрос, который я задал выше.
Сжатие цели без исходного файла
API-интерфейс исправлений Windows: сжатие цели без базового (исходного) файла
Заранее спасибо!