Sincronizar/espelhar diretório com bucket de arquivos do Rackspace Cloud

Sincronizar/espelhar diretório com bucket de arquivos do Rackspace Cloud

Que ferramenta posso usar para sincronizar o conteúdo de um diretório local com o de um bucket do Rackspace Cloud Files?

Preciso de um aplicativo semelhante ao rsync para fazer um espelho, não um aplicativo de backup. O que eu quero é a capacidade de fazer

rsync --update --delete /local/dir/ cloudfiles://bucket

para que o bucket remoto contenha um espelho exato dos arquivos que estão no formato /local/dir/.

Os metadados dos arquivos (proprietário, permissões) não são importantes e não há diretórios dentro do diretório principal.

Responder1

A maneira mais fácil de sincronizar um diretório local com arquivos em nuvem da Rackspace é por meio das ferramentas de console fornecidas peloprojeto openstack/swift. No Ubuntu, as ferramentas podem ser instaladas comapt-get install python-swiftclient

Então, supondo que você esteja no diretório que deseja fazer upload, execute o seguinte comando no terminal:

$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed

Isso fará upload recursivamente dos arquivos do seu diretório atual para o <containername>contêiner, economizando tempo ao carregar apenas os arquivos alterados. Você precisa fornecer o que <username>você usa para fazer login no Painel de Controle da Nuvem e o <api-key>disponível em Conta / Configurações da Conta no mesmo painel de controle.

Atenção: Se você usar caminhos relativos ou absolutos, o Swift irá carregá-los com o pseudo-caminhofornecido na linha de comandono recipiente. Portanto, se em vez de sincronizar .você sincronizar /var/www/test, os arquivos acabarão no /var/www/testpseudocaminho do contêiner - provavelmente, não é isso que você deseja.

Responder2

Para Linux encontrei este projeto antigo:http://code.google.com/p/cloudfiles-sync/wiki/Instructions

Para Windows existe esta ferramenta GUI: http://www.cloudberrylab.com/free-openstack-storage-explorer.aspx

Também acabei de encontrar esta ferramenta que permite montar o armazenamento de arquivos em nuvem:http://smestorage.com/?p=static&page=LinuxDrive

Responder3

Você pode usar o módulo Rackspace Cloud Files FUSE (http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse) para criar um sistema de arquivos montável, mas tome cuidado com as seguintes advertências:

  • use algo como --size-only para determinar se o arquivo foi totalmente gravado, não -a ou algo parecido, já que a configuração de permissões e horários não é suportada
  • usar --bwlimit não vai funcionar, porque o módulo armazena em cache as gravações em um arquivo temporário na memória e, em seguida, consome toda a largura de banda durante o upload; estou conduzindo um experimento usando o utilitário trickle para ver se isso ajuda

Responder4

Eu acho que você pode usar o rsync para isso, mas isso não funciona para você por qualquer motivo, tente também:Sincronizador de arquivos Unison, realmente funciona muito bem!

informação relacionada