ShadowCloud - universeller Cloud-Client

Derzeit bieten viele Unternehmen Cloud-Speicherdienste an, aber jedes hat seinen eigenen proprietären Client, und seine Funktionalität lässt in der Regel zu wünschen übrig.
Die vorhandenen Alternativen passten aus vielen Gründen nicht zu mir, deshalb entschied ich mich, meinen eigenen universellen Kunden zu erstellen - shadowcloud


So etwas wie das:


Bild


Was kann


  • Direkter Download (ohne Verwendung einer lokalen Festplatte) auf Google Drive, Yandex Disk (WebDAV), Mail.Ru Cloud, Dropbox
  • Standardmäßig vollständige Verschlüsselung, eine große Auswahl an Algorithmen und Einstellungen
  • Passwortgeschützte Datenbank
  • Prüfsummen und Deduplizierung
  • Entfernt die Dateigrößenbeschränkung
  • Replizieren oder teilen Sie Dateien in verschiedene Repositorys
  • Unbegrenztes Media-Streaming
  • Erstellt eine Vorschau und extrahiert Metadaten und Text von Dokumenten
  • Versionierung von Dateien und der gesamten Verzeichnisstruktur
  • Markdown-Notizen, Code-Hervorhebung
  • Speichern Sie Webseiten schnell mit eingebetteten Ressourcen
  • In-Memory-Datei-Caching
  • Verwendung als lokale Festplatte mit FUSE (erfordert winfsp)
  • Open Source, fast jeder Aspekt kann über shadowcloud.conf konfiguriert werden

Bild


Bild


Wie man es benutzt


Eigentlich das Repository


Um es zu benutzen ist notwendig:


  • Generieren Sie einen Verschlüsselungsschlüssel (später müssen Sie ihn auf andere Geräte importieren).
  • Cloud-Speicher einrichten
  • Erstellen Sie eine Datenregion und verbinden Sie den Speicher damit (Regions-IDs müssen auf allen Geräten übereinstimmen).

Bild


Danach können Sie mit Dateien zum Bedienfeld gehen, eine Region auswählen und Dokumente hochladen.


Ein bisschen über die Implementierung


Das Programm ist in Scala geschrieben und basiert fast ausschließlich auf dem Akka-Framework (Akteure, Streams, http, Persistenz). Das Frontend ist vollständig auf Scala.js geschrieben.


Bouncy Castle und optional libsodium werden zur Verschlüsselung verwendet (Standardalgorithmen: Blake2b / ChaCha20 / ECIES / ECDSA).


Apache Tika und JavaCV sind aufgrund ihrer Größe von der Light-Version ausgeschlossen. Sie werden zum Extrahieren von Metadaten aus Dokumenten und zum Erstellen von Vorschauen für Videos verwendet.

Source: https://habr.com/ru/post/de428523/


All Articles