В настоящее время у меня есть несколько скриптов и приложений для Android, которые вместе выполняют следующие действия для набора устройств-членов (смартфоны, ПК, цифровые камеры):
- все снимки, сделанные на всех устройствах-членах, автоматически синхронизируются с Dropbox
- для смартфонов это делается с помощью приложения Dropsync
- для цифровых камер скрипт запускается, как только камера подключается через USB
- один раз в неделю все изображения всех участников, синхронизированных таким образом, перемещаются в другой каталог Dropbox для длительного хранения.
- После перемещения происходит дедупликация - этот архивный каталог (назовем его
Dropbox/PicsArchive/
) сканируется, и все дубликаты обнаруживаются и удаляются. В настоящее время я используюfdupes
для обнаружения дубликатов, но, насколько мне известно, он обнаруживает только точные дубликаты, то есть файлы с одинаковыми контрольными суммами.
Эта проблема
Однако между всеми членами есть нетривиальная связь.
Например, при подключении цифровой камеры определенного типа к USB ПК, на котором выполняются эти сценарии, снимки с карты памяти перемещаются в Dropbox, а копии уменьшенного размера создаются и затем отправляются подмножеству членов смартфона (используя блестящее приложение Autoremote). Эти копии с измененным размером могут очень легко оказаться в месте на смартфоне, которое также синхронизируется Dropsync. Таким образом, снимки с камеры, а также копии с измененным размером, в конечном итоге синхронизируются в Dropbox/PicsArchive/
.
Еще один пример - сделать снимок с помощью камеры смартфона (высокое разрешение) и поделиться им с контактом WhatsApp - часто WhatsApp уменьшает разрешение этого изображения. Но я хочу, чтобы оба местоположения синхронизировались (камера и соответствующий каталог мультимедиа WhatsApp), то есть Dropsync синхронизирует два изображения (одно с высоким и другое с более низким разрешением) в dropbox, и оба в конечном итоге окажутся в Dropbox/PicsArchive/
.
Очевидно, я хочу сохранить только изображения с самым высоким разрешением / качеством. Возможно, здесь нужна лучшая стратегия резервного копирования, а не более общий инструмент для очистки беспорядка, который можно как-то предотвратить.
Вот пара грубых картинок текущей настройки. Вот оригинальный вариант использования:
Затем я реализовал связь, чтобы стимулировать пользователей делать более качественные изображения с помощью цифровой камеры, и в то же время иметь возможность легко отправлять эти фотографии пользователям WhatsApp:
Также обратите внимание, что путь Камера телефона → WhatsApp создает дубликат на телефоне (синхронизируются как каталог камеры телефона, так и каталог мультимедиа WhatsApp, что, разумеется, необходимо для синхронизации изображений, не предназначенных для WhatsApp).
Итак, как я могу дедуплицировать все эти картинки?