Atualmente, não há uma ótima alternativa de código aberto que funcione fora da caixa. A melhor coisa a observar é o projeto sparkleshare: link
Espero que isso se torne uma ótima alternativa, faça você mesmo.
Alguém sabe de algum recurso que possa me mostrar como fazer meu próprio servidor "Dropbox, Ubuntu One" em casa?
Eu realmente gosto da ideia desses serviços, mas não quero colocar minhas 'coisas' nas nuvens. Idealmente, ele deve ter um cliente que seja executado no Linux e no Windows.
Eu tentei configurar o iFolder no meu Ubuntu 10.04, mas sem sucesso até agora.
Na verdade, existem muitos deles.
SparkleShare (deps: git / subversão, mono, python) em github Software de sincronização baseado em GUI.
a. Versionamento: através de um sistema de controle de origem, portanto, é baseado em mutex em um servidor central através de um número de versão.
b. Estado: em desenvolvimento
c. Prós: OSS, mono-baseado tão facilmente modificável, Contras: processo de nível de usuário, dependente de GC, protocolo de compartilhamento ineficaz por ordens de grandeza como git é principalmente para pequenos arquivos de texto, bastante difícil de compilar (eu tentei). Usando ferramentas de alto nível.
lipsync (deps: Unison, rsync) Software baseado em serviço de linha de comando.
a. Versão: por meio do algoritmos delta rsync . Eu assumo que o programador deve escolher a resolução de conflitos.
b. Estado: não consigo encontrar o código-fonte, por isso não faço ideia. As únicas coisas em seu repositório git são binários.
c. Prós: boa configuração, usando ferramentas de nível médio.
iFolder - Dropbox da Novell. Eu ainda não estudei sua fonte. Eu só quero terminar esta edição e se as pessoas estiverem interessadas, adicionarei mais.
a. Versão:
b. Estado: Problemático para compilar no Ubuntu, sem falar nos pacotes. Aqui está um guia de instalação detalhado .
c. Prós: cliente Windows X64, maduro, integração AD com ACLs, recursos que nenhum outro projeto começou a implementar. Eu acho que isso pode ser um bom ponto de partida. Contras: A Novell pode não usar o seu repositório svn público como o repositório principal e apenas fazer as descrições de código. Eu não sei exatamente sobre isso. Pode ser muito acoplado ao openSUSE para instalar facilmente no Ubuntu. Para verificar seus algoritmos.
scp / rcp - preterido em favor do rsync
DRDB - bloqueia as ferramentas de espelhamento de dispositivos para RAID-1 distribuído, ou seja, uma variante de servidor da caixa de depósito. Eu ainda não verifiquei seu código-fonte, mas ele é apenas linux. O algoritmo atual provavelmente seria fácil de combinar com o código-fonte em minhas reflexões abaixo desta listagem de software.
a. Versionamento: formato de mensagem interna em LAN / WAN
b. Estado: parece maduro o suficiente
c. Prós: estáveis o suficiente para o Linux, Contras: não há suporte para outros sistemas operacionais
Neste momento, estou investigando a melhoria dos tempos de compilação em um Windows 7 Virtualizado, em que os tempos de compilação em um Windows 7 em metal são de 40 s, mas virtualizados em aproximadamente 3m 20s. Estou pensando em escrever um driver ioctl que é um cache write-through que se parece com um disco RAM para pastas selecionadas em NTFS.
Usando o software acima, acho que uma semana de desenvolvimento em tempo integral de 2 a 3 pessoas produziria um Alpha utilizável que não perdesse seus arquivos combinando os softwares acima.
No meu sistema, então, a ideia geral seria:
Monte uma unidade virtual \? {GUID}, que é o disco RAM e o cache RW. O software que cria esta unidade virtual usa dois parâmetros de entrada (que são vitais):
a. A pasta de destino; esta é a pasta SMB, portanto, deixarei que a pilha de rede do sistema operacional manipule o IO real. No meu caso, esta é a pasta virtual VMWare, que tem em si um destino em uma unidade ext4, mas poderia facilmente ser seu servidor de arquivos usando SAMBA / SMB.
b. O caminho da pasta a ser montada, e. C: \ ramdisk
Este código para criar volumes virtuais foi retirado do código do TrueCrypt , em /Driver/DriverFilter.c (entre outros arquivos)
A unidade usa o SMB / o protocolo de rede VMWare / para buscar dados quando ele é iniciado; ele obtém com baixa prioridade de tarefa, de forma assíncrona da rede e preenche seu cache. Ele poderia usar um algoritmo de compactação simples e ter 1 thread que usa passagem de continuação do tipo de caixa de mensagem para obter um ótimo desempenho. No Windows, ele poderia usar as chamadas IO assíncronas normais, e no linux ele poderia usar o epoll / inotify implementação e código de nginx .
Meu serviço que é o disco RAM monta a unidade de disco ramn sem nome como uma pasta NTFS. Todos os programas podem continuar gravando em C: \ ramdisk, ou como quer que eu chame.
Cópia assíncrona da rede ainda em andamento. Com uma taxa de leitura de aproximadamente 100 MiB / se 2 GiB ramdisk, seria 20,5 s para ler todos os dados.
Cada chamada a ler executaria um cálculo no índice da CPU em um array de tamanho fixo n: ulong GiB max. Isso exigiria a resolução de conflitos ou bloqueios de leitura / gravação.Se implementássemos um algoritmo de resolução de conflito como os disponíveis no Microsoft Sync, poderíamos transmitir cada parte que conflita como uma mensagem para outro processo de resolução de conflito. O Dropbox resolve isso criando um novo arquivo e nomeando-o "Cópia Conflita do Nome de Usuário PrevFileName (aaaa-MM-dd) .ext". Talvez isso possa ser alterado por meio de um widget pequeno, se estiver sendo compilado com essa única fonte - o widget detectará mudanças pendentes como mensagens / eventos e escolherá o protocolo de resolução de conflitos. Assim, ao programar em uma pasta no modo exclusivo, a VM do Windows poderia definir o widget como 'exclusivo'.
Isso teria esses PROs
Eu ouvi sobre o Syncany no Ubuntu UK Podcast , atualmente beta, mas parece que atende aos requisitos
Eu não acho que isso é exatamente o que você está procurando, mas depende do seu uso pretendido.
OCrashPlan é um pacote de software de backup e serviço de hospedagem de backup online relacionado, mas o que é diferente é que o software deles tem um modo que permite ter seus dados copiados pela Internet (ou LAN) para outro PC executando o software.
Isso significa que o destino não precisa estar na nuvem. Não é bem como dropbox, pois é mais um backup, em vez de sincronizar e acessar arquivos de qualquer lugar, mas se for apenas backups, então ele funciona bem. Se você quiser acessar os arquivos de backup do outro PC, eu acho que você pode fazer uma "restauração local", mas não é algo que eu tentei.
O pacote básico de software é gratuito e suporta o modo "backup para outro computador", mas apenas o backup programado, mas há uma versão "pro" do software que também custa e sincroniza em tempo real, em vez de apenas os backups agendados . (Armazenamento em nuvem também é um pagamento opcional por mês extra)
Se você quiser configurar duas (ou mais) máquinas com uma pasta replicada, dê uma olhada no glusterfs.
É fácil de configurar se você seguir o Guia do usuário do GlusterFS .
Ninguém mencionou a sincronização bitorrent ? É executado em qualquer coisa - Ubuntu, Windows, muitos sistemas operacionais de smartphones comuns, framboesa pi .... você nomeia, provavelmente funciona e como um usuário comum. Transferências criptografadas, arquivos não são armazenados na nuvem (embora eu acho que o bittorrent executa o rastreador para isso), razoavelmente rápido, você pode compartilhar pastas seletivamente, e quase nenhuma complicação envolvida, você só precisa copiar e colar uma chave para o outro sistema.
Uma vez configurado, funciona.
Estou de olho no AeroFS . Parece que pode ser um serviço semelhante ao Dropbox, em que o armazenamento na nuvem é opcional. Não sei se / quando eles implementarão o suporte móvel e eu acho que isso exigiria que você sincronizasse esses arquivos na nuvem também. Estou interessado principalmente em uma solução de sincronização bastante indolor entre computadores Windows, Mac e Linux.
Eles estão no beta inicial, mas você pode inscrever-se para um convite, se desejar.
Eu uso o apache com mod_dav (webdav) para um servidor web apache, posso montá-lo como uma unidade e fazer o download / download de arquivos pela web. Isso é bem simples, mas pode cobrir suas necessidades.
Eu quero compartilhar minha própria experiência, portanto. Minha solução atual para um ambiente próprio de nuvem hospedada é o Seafile .
Recursos do Seafile:
Minhas experiências Seafile:
Como não preciso de suporte a proxy, estou realmente satisfeito com o Seafile!
Eu uso o SSHFS para montar diretórios no meu servidor como diretórios locais no meu desktop e laptop. Todas as alterações de arquivo são salvas diretamente no servidor. Ao contrário da caixa de depósito, os arquivos não são armazenados localmente nas máquinas clientes. Acho isso ótimo, porque você não precisa se preocupar com a sincronização e o controle de versões, mas não é ideal para uso off-line nem para arquivos muito grandes.
É muito direto e simples, e acho que é a melhor solução. A única coisa que eu não uso é para grandes mídias como fotos e filmes, porque todos os arquivos são acessados pela rede. Aqueles que eu sincronizo com o Rsync.
Link para a documentação do SSHFS - & gt; link