Здравствуйте, Хабровчане.

Последнее время встал ребром вопрос, где и как хранить коллекцию личных фото и видео в связи с тем, что оплатить Гугл.Фото стало невозможно и вообще платежи через Гугл.Плей и AppStore накрылись. Не сказать, чтобы я изучил вообще все возможности, но довольно глубоко проник в некоторые основные и… остался недоволен (((. Я уже встречал статьи, где люди рассказывают где и как нужно хранить, но обычно это делают люди у которых коллекция (читай “фотоархив”) уже систематизирована и упорядочена, и все новые фото складываются в папочки и подпапочки образуя древовиднрую иерархию. Но! Это совсем не то, что доктор прописал. Если продолжение поста хоть кого-то заинтересует, то я напишу следующую часть и при должном интересе мы таки доберёмся до идеи стартапа, который я вынес из всей этой истории и это будет внезапный твист =).

Исследование моё началось чуть больше года назад, когда я решил, что хранить мою коллекцию фото и видео только на жёстком диске это не бон тон. Я решил сразу обратиться к личным рекомендациям и разместил в FB пост-опрос с текстом - “где мне хранить личные фото, чтобы поиск по лицам, места, дополнительные тэги и прочие чудеса”. Добрые люди  мне предложили Яндекс.Диск, Облако Мэйл.ру и Гугл.фото. А поскольку я был безумно богат и беспечен, то я купил все три подписки, закинул в каждую по 30 ГБ фото/видео и забыл чуть меньше, чем на год. Через год пришло время продлять подписку, читай “платить за подписку”, а поскольку я перестал быть безумно богат, но обладал некоторым количеством свободного времени, то я сначала, превозмогая неимоверные препятствия, собрал в одну папку все папки со всеми фото\видео со всех своих пяти телефонов, одного телефона жены, одной цифровой видеокамеры, одной цифровой фотокамеры, трёх маминых телефонов, четырёх флешек, папок с предыдущих двух ОС установленных на PC. В итоге я получил 191 ГБ данных и 36,5 тысяч файлов (примерно). Обратите внимание, что плюс к тому в облаках у меня болталось ещё примерно 30 ГБ, бумажные фото, проявленные и непроявленные плёнки.

Так как у меня появилось свободное время, то я решил проверить, как волшебно должно быть работают облака с их фильтрами и прочими прибамбасами, но не тут-то было. Я когда в FB писал про “где мне хранить личные фото, чтобы поиск по лицам, места, дополнительные тэги и прочие чудеса”, я себе нафантазировал, что каким-то волшебным образом я смогу применять тэги и фильтры не только по отдельности, но и вместе. Нафантазировал. Оказалось, что я ещё много чего нафантазировал, что на мой взгляд должна была сделать за меня “умная машинка”. Но давайте по порядку. За это время к испытуемым прибавился Сбер.Диск (не надо пожалуйста, на этом месте мне минусовать, карму, я ещё не закончил %).

Исследование моё разбилось на несколько частей, так как оказалось, что функционал в web-версии и в мобильном приложении значительно отличается, например то, чего нет в web-версии в Облаке Мэйл.ру, есть в приложении Android, и это что-то - распознование лиц и объединение их в персоны. Я поэтому когда стал смотреть их web-версию начал плеваться и жалеть о потраченных миллиончиках и потом очень удивился, когда нашёл эту опцию в мобилке и почему-то в разделе “Альбомы”, что мне показалось не совсем логичным. Ну, я порадовался, но не очень долго, т.к. один из сценариев, которые я себе нафантазировал это возможность выбрать только фото, где есть один из моих детей, причём обязательно в дачный период, так как думал побыстренькому перед дачным сезоном закатить вечеринку для детей с просмотром дачных фото, но не срослось. Допустим, я по каждой персоне смог по календарю отобрать нужные фото, но сгруппировать их я могу только переместив в какой-то другой альбом, а это только добавит бардака в общую структуру, остаётся только скачать их куда-то и там с ними сделать что-то с чем я решил пока подождать, ведь есть ещё другие сервисы, возможно там ситуация будет лучше. Пока я с этим разбирался я нашёл ещё несколько затыков. Например, мои дети будучи в младенческом возрасте сложились в одного МЕГАмладенца с периодами фото от 2004 до 2012 года. Я понимаю младенцев 2004 и 2007 года, т.к. именно в эти годы у меня были младенцы, а вот 2012 год явно не вписывался, но я так думаю, что по какой-то причине затёрлись даты производства файла в EXIF и заменились датой записи фото на новое устройство, коих у меня было множество. Это можно вытерпеть и вынести, но нельзя изменить, в Облаке Мэйл.ру нельзя изменить дату фото как минимум в мобильном приложении (((.

Продолжение следует…

PS ссылка на исследование (опросник)

PPS если будет интерес потом расшарю результаты первого исследования с интерпретацией результатов.

PPS пока получается не очень системно, но это произрастает из того, что именно так строился личный опыт ).

PPPS какие функции для вас важны для хранения\управления личной фото-видео-коллекцией?

PPPPS Планирую выпускать продолжения примерно такого же объёма раз в неделю.

Комментарии (24)


  1. r-romanov
    23.05.2022 16:15
    +1

    Не совсем понятно что такое "фильтр скриншотов в общей ленте", но вообще в гугл фото, в разделе управления хранилищем, можно отобрать и удалить\перенести скриншоты, целый отдельный пункт в чистилке под это есть.


    1. sergeymarshak Автор
      23.05.2022 16:35

      Спасибо за вопрос. Общая лента - это все фото\видео в хронологическом порядке, вот например, как выглядит у меня. Скрины можно найти отдельно в "Поиск" => "Документы" => "Скриншоты" и в чистилке тоже есть это да.


  1. PereslavlFoto
    23.05.2022 16:45
    +1

    какие функции для вас важны для хранения\управления личной фото-видео-коллекцией?

    1) ЛОКАЛЬНОЕ хранение, которое не зависит от платных провайдеров.
    2) Не база данных, а дерево каталогов.
    3) Поиск по образцовой картинке («найти большое по превью») при помощи свободного ПО.
    4) Поиск по лицу («найти такие же лица») при помощи свободного ПО.

    Первые два легко сделать. Третье и четвёртое пока никто не сделал.


    1. sergeymarshak Автор
      23.05.2022 16:59

      Спасибо за обратную связь. Можете нубу пояснить, в чём преимущество дерева каталогов перед базой данных?


      1. av0000
        23.05.2022 17:10
        +2

        Я, например, раз пять "терял" базу при переездах между дисками и дистрибутивами :)

        @PereslavlFoto В Shotwell 0.29.3+ (вновь) заявляют распознавание и детекцию лиц, но что-то они лет пять уже это "заявляют". Всё не соберусь поставить бету и попробовать, если "взлетит" на Intel - там OpenCV определенной версии надо...


        1. sergeymarshak Автор
          23.05.2022 17:43

          Гранд спасибо! А если резервную копию БД с синхронизацией хранить в облаке?


          1. av0000
            23.05.2022 18:15
            +1

            Это традиционный вопрос хранения бэкапов. Хоть где-то хранить надо обязательно.

            Там другой нюанс:

            • сменили диск/ОС/ - слетели привязки по путям. Не все программы могут "подхватить" файловую структуру на новом месте и привязать её к БД

            • сменили версию программы - старая база перестала читаться, а старой версии софте - не предусмотрено :)

            • но есть и плюс у БД - гораздо быстрее искать/фильтровать по параметрам (у меня это как дата, так и до десятка тегов на особо хитрые фото)

            Резюмируя - хранить в осмысленном дереве по датам/событиям/пленкам/и т.п. Теги писать в файлы (непосредственно или .xmp рядом). Использовать софт, читающий это дело в БД, позволяющий искать по тегам и записывать их обратно. Делать бэкапы БД/превью хоть куда - облако, другой диск, ...


            1. sergeymarshak Автор
              24.05.2022 09:59

              А если сломались пути, можно ли их актуализировать, если в качестве идентификатора использовать совокупность данных - точный размер в битах, дату и время создания, хэш от картинки?


              1. av0000
                24.05.2022 12:45
                +1

                Ну, упомянутый shotwell это умеет.

                Несколько чудны́м образом и небыстро (через рескан файлов) - видимо, хранит хеш файла и повторное добавление вызывает поиск в базе "потерянных" и перепривязку найденного на старое место в дереве.

                Что будет, если были изменены тэги "извне" не скажу, но мелькало где-то, что сравнивается только содержимое картинки.


          1. PereslavlFoto
            23.05.2022 23:56
            +1

            Хранить резервную копию в бесплатном облаке невозможно, потому что нету таких бесплатных облаков даже на двести гигабайт размером.


            1. aleks_raiden
              24.05.2022 09:04
              +1

              Например, BlackBaze или даже напрямую в IPFS через web3.storage


      1. PereslavlFoto
        23.05.2022 17:27
        +2

        Дерево каталогов намного проще --> быстрее --> удобнее.

        Все операции с файлом все базы данных можно сделать БЕЗ помощи СУБД.

        А вот с файлом ВНУТРИ базы данных ничего нельзя сделать без помощи СУБД, что заставляет не работать с файлом изображения, а работать с СУБД, тем самым задача становится намного сложнее.


        1. sergeymarshak Автор
          23.05.2022 17:44

          А если в файлы отдельно а БД отдельно и БД хранится путь к файлу и небольшое превью?


          1. PereslavlFoto
            23.05.2022 23:55
            +1

            Тогда БД получает много недостатков:

            1) быстрая, в течение одного дня, рассинхронизация с файлами, потому что запуск БД будет один раз в полгода, а изменения в файлах будут ежедневно,

            2) замусоривание жёсткого диска этими превью,

            3) распухание БД за счёт ненужных сведений, сохранённых в ней, потому что все сведения в ней ненужные.


            1. sergeymarshak Автор
              24.05.2022 10:01

              А как посчитать примерный вес БД, на 10 000 объектов? Допустим, превью 250*250 пикселей.


              1. av0000
                24.05.2022 12:58
                +1

                Прям опять про shotwell :)

                Базу хранит с тегами и тех. инфой, превью хранит отдельными файлами 180х180 и 360х360 (хз, можно ли отключить часть). Остальное "как есть" в файлах. Теги умеет вписывать в файлы, по-умолчанию - отключено.

                Из того, что сейчас под рукой:

                • 18050 фото и 46 видео на 186Гб

                • 4 копии БД по 10-12Мб

                • 2.1Гб превьюшек


                1. sergeymarshak Автор
                  24.05.2022 13:46

                  Солидно


    1. maximw
      23.05.2022 17:37
      +2

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


      1. sergeymarshak Автор
        23.05.2022 17:44
        +1

        Спасибо! Полностью согласен, до сих пор нахожусь в поиске идеальной конфигурации.


      1. PereslavlFoto
        23.05.2022 23:53
        +1

        Ваша реплика очень чётко содержит в себе условия, при которых она верна.

        Да, именно так. ЕСЛИ можно купить оборудование, ЕСЛИ можно заработать деньги, тогда локальное хранение опасно.

        Но у меня нет таких шансов, поэтому локальное хранение остаётся для меня единственно возможным. И таких людей, как я, пока ещё большинство. Поэтому все мои реплики исходят из базового условия о том, что нужно свести расходы к нулю.

        Если же расходы не нулевые, а платить нечем, тогда решение с ненулевыми расходами — это невозможное решение.


    1. bogolt
      23.05.2022 17:39
      +2

      В PhotoPrism можно отметить лица и он найдет фотографии с ними.
      Тут вообще большой список разных self-hosted фото архивов github.com/awesome-selfhosted/awesome-selfhosted#photo-and-video-galleries


      1. sergeymarshak Автор
        23.05.2022 17:45

        Огромное спасибо, постараюсь с разработчиками разобраться, что из этого можно сделать.


  1. vmkazakoff
    23.05.2022 22:44
    +1

    1) локально, но с синхронизацией с телефонами (именно множественное число). Есть мастер хранилище (ноут) и он выкачивает фотки с телефона по логике типа reilio без проводов и лишних движений. Синхронизация двухсторонняя - со всех телефонов собрало фотки и потом на все отправила недостающие но в минимальном качестве (чтобы можно было найти и показать с экрана).

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

    3) удаление фотки можно сделать не только софтделитом (с этим проблемы почти у всего софта - удаляет только из базы, на диске потом куча хлама) и вообще работать с файлами, а не с базой. База - для быстроты поиска

    4) поиск по лицам, карте, распознавание образов (сложные фильтры не очень нужны, типа первый ребенок на даче но не зимой и с домом на фоне - не критично)

    5) поиск похожих - очень часто мы с женой фоткаем одно и потом надо сидеть и сначала сливать фотки в одном месте, а потом выбирать лишние с двух девайсов

    6) шаринг фоток - возможность отправить жене свою часть фоток, чтобы они слились с ее и если она удаляет у себя то можно было удалить и у меня (очевидно переспросив) - возможно будет понятнее наши это расценивать как подключение ещё одного девайса для синхронизации него не на все фотки, а на часть

    Мне кажется не все вспомнил, года два назад искал себе похожее - так и не нашел. В итоге я на бесплатном Гугле, жена на платном айклауде, который скоро отыквится.


    1. sergeymarshak Автор
      24.05.2022 10:04

      Огромное спасибо!