ShadowCloud - cliente universal de nuvem

Atualmente, muitas empresas fornecem serviços de armazenamento em nuvem, mas cada uma tem seu próprio cliente proprietário e sua funcionalidade, em regra, deixa muito a desejar.
As alternativas existentes não me agradaram por muitas razões, então decidi fazer meu próprio cliente universal - shadowcloud


Algo assim:


imagem


O que pode


  • Download direto (sem usar um disco local) para o Google Drive, Yandex Disk (WebDAV), nuvem Mail.Ru, Dropbox
  • Criptografia completa por padrão, uma grande variedade de algoritmos e configurações
  • Banco de Dados Protegido por Senha
  • Soma de verificação e redução de redundância
  • Remove o limite de tamanho do arquivo
  • Replicar ou dividir arquivos em diferentes repositórios
  • Streaming de mídia ilimitado
  • Cria visualizações e extrai metadados e texto de documentos
  • Arquivos de versão e toda a estrutura de diretórios
  • Notas de remarcação, destaque de código
  • Salve páginas da web rapidamente com recursos incorporados
  • Cache de arquivo na memória
  • Use como um disco local usando o FUSE (requer winfsp)
  • Código aberto, quase todos os aspectos são configuráveis ​​via shadowcloud.conf

imagem


imagem


Como usar


Na verdade, o repositório


Para usá-lo é necessário:


  • Gere uma chave de criptografia (mais tarde você precisará importá-la para outros dispositivos)
  • Configurar armazenamento em nuvem
  • Crie uma região de dados e conecte o armazenamento a ela (os IDs da região devem corresponder a todos os dispositivos)

imagem


Depois disso, você pode acessar o painel com arquivos, selecionar uma região e fazer upload de documentos.


Um pouco sobre implementação


O programa é escrito em Scala e é quase inteiramente construído na estrutura Akka (atores, fluxos, http, persistência), o frontend é escrito inteiramente em Scala.js.


Bouncy Castle e opcionalmente libsodium são usados ​​para criptografia (algoritmos padrão: Blake2b / ChaCha20 / ECIES / ECDSA).


O Apache Tika e o JavaCV são excluídos da versão light devido ao seu tamanho grande; são usados ​​para extrair metadados dos documentos e criar visualizações para vídeos.

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


All Articles