Estou trabalhando com um projeto acadêmico que está tentando otimizar a eficiência energética para proprietários de residências, coletando dados de sensores em residências inteligentes. O problema é que eles precisam carregar seus dados de sensores de uma rede de máquinas heterogêneas de patchwork (alguns laptops Windows, alguns servidores Linux, alguns Raspberry Pis, etc.).
A solução precisa ter as seguintes propriedades:
Sincronizar para / de S3. Já temos alguns dados sobre o S3, mas não nos importamos com o provedor, desde que seja um armazenamento de backup barato e com baixa falha que parece um diretório.
Sincronização unidirecional por arquivo Deve ser possível fazer upload de alterações apenas para um arquivo específico, em vez de para um diretório inteiro. Também deve ser capaz de promover mudanças.
A Delta escreve. Os arquivos serão grandes e não queremos enviá-los novamente por completo - apenas as alterações.
Armazena metadados separadamente. Precisamos poder ler os arquivos na extremidade remota, pois eles estão no lado local; se os arquivos estiverem envoltos em algum tipo de envelope / contêiner que dificultará o seu consumo.
Interface da linha de comando. Ele precisa ser programável por script, porque estaremos conduzindo o processo de sincronização com um script externo.
Plataforma cruzada. Deve funcionar no Windows 7+ e no Ubuntu.
Dependências externas mínimas. Idealmente, "instalação" consistiria em descartar uma pasta em algum lugar ou fazer o download de um pacote.
Opções que eu olhei e tive que rejeitar:
Escreva diretamente usando s3fs: Não suporta gravações delta; reenvie o arquivo inteiro para qualquer alteração. Ai!
rsync + s3rsync.com: Proibitivamente caro, já que nossos fluxos de rsync farão upload de muitos dados, o tempo todo. Além disso, o site está extinto ("copyright 2010"), muitas críticas negativas.
Duplicidade: Não oferece suporte à gravação de conteúdo de arquivo não processado - todos os arquivos são agrupados em metadados que apenas o Duplicity compreende.
Sincronização: Não suporta sincronização unidirecional de arquivo único.
Tags sync cloud-storage