ShadowCloud - client cloud universel

Actuellement, de nombreuses entreprises fournissent des services de stockage dans le cloud, mais chacune a son propre client propriétaire et leurs fonctionnalités, en règle générale, laissent beaucoup à désirer.
Les alternatives existantes ne me convenaient pas pour de nombreuses raisons, j'ai donc décidé de créer mon propre client universel - shadowcloud


Quelque chose comme ça:


image


Que peut


  • Téléchargement direct (sans utiliser de disque local) sur Google Drive, Yandex Disk (WebDAV), Mail.Ru cloud, Dropbox
  • Cryptage complet par défaut, une large sélection d'algorithmes et de paramètres
  • Base de données protégée par mot de passe
  • Somme de contrôle et déduplication
  • Supprime la taille limite des fichiers
  • Répliquez ou divisez des fichiers en différents référentiels
  • Streaming multimédia illimité
  • Crée des aperçus et extrait des métadonnées et du texte de documents
  • Versionnement des fichiers et de la structure complète des répertoires
  • Notes de démarque, mise en évidence du code
  • Enregistrez rapidement des pages Web avec des ressources intégrées
  • Mise en cache des fichiers en mémoire
  • Utiliser en tant que disque local à l'aide de FUSE (nécessite winfsp)
  • Open source, presque tous les aspects sont configurables via shadowcloud.conf

image


image


Comment utiliser


En fait, le référentiel


Pour l'utiliser il faut:


  • Générez une clé de chiffrement (vous devrez ensuite l'importer sur d'autres appareils)
  • Configurer le stockage cloud
  • Créez une région de données et connectez-y le stockage (les ID de région doivent correspondre sur tous les appareils)

image


Après cela, vous pouvez accéder au panneau avec des fichiers, sélectionner une région et télécharger des documents.


Un peu sur la mise en œuvre


Le programme est écrit en Scala et est presque entièrement construit sur le framework Akka (acteurs, streams, http, persistance), le frontend est entièrement écrit sur Scala.js.


Bouncy Castle et éventuellement libsodium sont utilisés pour le chiffrement (algorithmes par défaut: Blake2b / ChaCha20 / ECIES / ECDSA).


Apache Tika et JavaCV sont exclus de la version allégée en raison de leur grande taille; ils sont utilisés pour extraire les métadonnées des documents et créer des aperçus pour les vidéos.

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


All Articles