Про то, как я храню фотографии
Требования
- Полная, стопроцентная платформенная и программная независимость. Любые продукты, хранящие фототеку в своем внутреннем формате, однозначно не подходят;
- Группировка фотографий по альбомам;
- Привязка альбомов к датам, сортировка альбомов по датам;
- Возможность понять по имени альбома, что в нем содержится;
- Наличие как минимум двух физических копий фототеки на двух независимых носителях;
- Наличие онлайновой копии фототеки с возможностью просмотра членами семьи;
- Инкрементальная синхронизация фототеки с онлайн-копией;
- Возможность алгоритмически простой миграции с одной онлайн-копии на другую в случае ее закрытия/нежелательного обновления.
Реализация
Нейминг и структура локального хранилища фототеки
- Каждый альбом представляет из себя папку с именем
YYYY-MM-DD (Описание)
; YYYY-MM-DD
— дата создания альбома;- В скобках — краткое описание альбома из нескольких слов;
- Альбомы разложены по годовым папкам.
Пример полного пути к папке:
2014/2014-10-10 (Вася и Лена в зоопарке)
Хранилища фотографий
- Временный буфер — Dropbox (про него ниже);
- Основное локальное хранилище — подключенный как сетевой диск raid-массив на дисковой станции;
- Дополнительное локальное хранилище — usb-диск, подсоединенный к дисковой станции;
- Онлайновое хранилище — Flickr.
Сбор и систематизация фотографий
- Каждая очередная порция фотографий с телефона/фотокамеры сливается в Dropbox;
- Раз в несколько недель накопившиеся фотографии систематизируются локально на одном из компьютеров и раскладываются по папкам альбомам;
- На выходе получаем инкремент фототеки в виде N альбомов.
Инкрементальное обновление фототеки
- Ранее полученные новые альбомы заливаются на сетевой диск;
- Бегающий на дисковой станции по крону rsync синхронизирует добавленные альбомы с дополнительным локальным хранилищем (то есть по-просту сливает их на примонтированный usb-диск);
- Самописный ruby-скрипт, используя Flickr-api:
- заливает новые фотографии на Flickr;
- объединяет их в set-ы (так Flickr называет альбомы) с именем, совпадающим с именем папки;
- проставляет всем фотографиям дату, взятую из имени альбома;
- навешивает на альбом теги (разбитое на слова описание в имени альбома).
2014-10-29