1 ноября 2018

ShadowCloud — универсальный облачный клиент

КриптографияOpen sourceScalaОблачные сервисыСофт
Из песочницы

В настоящее время многие компании предоставляют сервис облачного хранилища, но каждая имеет свой проприетарный клиент и их функционал, как правило, оставляет желать лучшего.
Существующие альтернативы мне не подошли в силу многих причин, поэтому я решил сделать собственный универсальный клиент — shadowcloud


Как-то так он выглядит:


image


Что умеет


  • Прямая загрузка (без использования локального диска) в Google Drive, Яндекс Диск (WebDAV), Облако Mail.Ru, Dropbox
  • Полное шифрование по умолчанию, большой выбор алгоритмов и настроек
  • Защищённая паролем база данных
  • Чексуммы и дедупликация
  • Убирает ограничение на размер файла
  • Репликация или разбиение файлов по разным хранилищам
  • Стриминг медиа без ограничений
  • Создаёт превью и извлекает метаданные и текст документов
  • Версионирование файлов и всей структуры директорий
  • Markdown заметки, подсветка кода
  • Быстрое сохранение веб-страниц со встроенными ресурсами
  • Кэширование файлов в памяти
  • Использование в виде локального диска с помощью FUSE (требуется winfsp)
  • Открытый исходный код, почти каждый аспект настраивается через shadowcloud.conf

image


image


Как использовать


Собственно, репозиторий


Для использования необходимо:


  • Сгенерировать ключ шифрования (позже его нужно импортировать на других устройствах)
  • Настроить облачное хранилище
  • Создать регион данных и подключить к нему хранилище (ID региона должны совпадать на всех устройствах)

image


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


Немного о реализации


Программа написана на Scala и практически целиком построена на фреймворке Akka (акторы, стримы, http, persistence), фронтенд написан полностью на Scala.js.


Для шифрования используется Bouncy Castle и опционально libsodium (алгоритмы по умолчанию: Blake2b/ChaCha20/ECIES/ECDSA).


Из версии light исключены Apache Tika и JavaCV из-за большого размера, они используются для извлечения метаданных из документов и создания превью для видеозаписей.

Теги:scalaopen sourceоблакошифрование
Хабы: Криптография Open source Scala Облачные сервисы Софт
+32
14,8k 108
Комментарии 27
Похожие публикации
Scala-разработчик
до 200 000 ₽MetacommerceМожно удаленно
Senior Scala Developer
от 5 000 до 7 000 €Unity Trade SolutionsЛондонМожно удаленно
Backend-разработчик (Middle)
до 250 000 ₽ЛатераЗеленоградМожно удаленно
Middle Scala Developer
от 2 000 до 4 000 €Unity Trade SolutionsЛондонМожно удаленно
Scala developer/Data Engineer
от 150 000 ₽Retail RocketМоскваМожно удаленно
Лучшие публикации за сутки