Шоукейс разработчиков: я разработал on-premise систему хранения медиа контента
Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография
Исходные данные
В течении жизни обнаружил проблему сохранения медиа контента (фото/видео).
Контекст:
У всех у нас есть смартфоны, и чаще всего мы делаем фотографии с помощью смартфонов (как растут дети / утренники / праздники / да и просто фото с членами семьи / друзьями / близкими)
У смартфонов есть несколько проблем:
- Память не бесконечная, может относительно быстро заполнится (в зависимости от использования, конечно же)
- Устройства хранения данных могут выходить из строя (даже дорогие SD карты, бывало, переставали работать, и данные на них теряются)
- Сами смартфоны роняют/ломают/теряют. В некоторых случаях данные вытащить уже не получится.
В итоге фотки за какой то период могут просто пропасть. А это кусок памяти о жизни как ни как, который и в голове со временем замыливается. В каком то роде память смартфона — это наша долговременная память, только внешняя.
Еще одним важным требованием является простота использования. Чтобы бабушка, у которой есть мессенджеры, в т.ч. телеграм могла учавствовать в образовании общего медиа хранилища (долговременной памяти семьи) без особого обучения.
Создание
Было разработано 2 приложения:
1. API на NestJS. Является ботом для телеграм. Работает следующим образом:
- запустили API
- создали бота
- создали приватная группа в телеграм
- бот добавляется в группу
Далее, при загрузке фото или видео, бот скачивает его на жесткий диск и ставит реакцию на пост, обозначающую, что медиа контент успешно сохранен.
Для каждого пользователя, который загружает контент создается своя отдельная папка на жестком диске при сохранении.
2) UI на ReactJS. Приложение для отображения медиа контента. Например, чтобы с телевизора в браузере открыть и посмотреть фотки/видео в режиме галлереи.
Есть возможность фильтрации по пользователю, который загрузил фото. Функциональность фильтра буду расширять по потребности
Таким образом решается проблема хранения — мы не зависим от внешних провайдеров (например iCloud)
Бонусы от такого подхода:
- относительная приватность контента (из внешних сервисов — только через телеграм контент проходит)
- неплохую отказоустойчивость: фото/видео находятся на смартфоне, жестком диске и в телеграм группе. Если поставить еще один жесткий диск, то отказоустойчивость будет еще выше. Если удалять фото со смартфона, то все равно остаются 2 источника)
- хранение контента в телеграм бесплатно, все затраты только на жесткий диск для хранения
- все участники будут видеть группу, и медиа контент в ней, который они могли вообще не увидеть (баф на+1 к социальному взаимодействию всем участникам)
- можно смотреть фотки сделанные участниками группы через UI в домашней локальной сети
Моя сборка работает с Raspberry PI и внешним жестким диском

Проект является OpenSource, соответственно бесплатный для использования.
Итоги и планы
Провожу тестирование, устраняю проблемы, повышая стабильность работы.
В этом году буду всех родственников/друзей переводить на эту систему шаринга/хранения контента.
Есть один минус, который достаточно серьезно ограничивает использование — лимит на скачивание ботом в 20МБ за файл
Планирую пофиксить через использование MTProto Provider (автоматизацию реального аккаунта телеграм а не бота)
Да, приложение было разработано до блокировок мобильного интернета, и сейчас блокировка телеграм так же является фактором ограничения использования. Как с этим поступить по простому пока не придумал
p.s. на прикрепленном изображении веб интерфейса тестовые картинки загружены, без личных фото

















