SYNC uma pasta no servidor Ubuntu com bucket amazon S3 automaticamente

1

Eu tenho um aplicativo em execução no servidor Digital Ocean e há duas pastas que estão sendo atualizadas com imagens enviadas por usuários.

É possível transferir os novos uploads da pasta do servidor para o bucket s3 automaticamente.

Eu já configurei o AWS CLI no servidor ubuntu.

obrigado

    
por brainHax 24.02.2016 / 16:56

2 respostas

3

Você também pode tentar o cliente Minio aka mc , sua fonte aberta e API compatível com S3. Você pode usar o comando mc mirror para arquivar o mesmo.

Instalando o minio client

 $ wget https://dl.minio.io/client/mc/release/linux-amd64/mc 
 $ chmod 755 mc
 $ ./mc --help

Configurando o mc para o Amazon S3

$ ./mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>

Exemplo

$ ./mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Copiando a pasta local para o AWS S3

$ ./mc mb mys3/mys3baucket
$ ./mc mirror mylocaldir/ mys3/mys3baucket

No primeiro comando, criei um nome de depósito "mys3baucket"  No segundo comando eu espelhei meu diretório local para o meu depósito S3 "mys3baucket"

Você pode definir isso no cron & está tudo pronto para um espelho periódico.

mc implementa os seguintes comandos

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Espero que ajude. Isenção de responsabilidade: Eu trabalho para Minio

    
por 08.03.2016 / 14:22
1

não há, na minha opinião, uma solução perfeita aqui, mas você pode tentar essas duas rotas:

  • monte em seus servidores um bucket como um sistema de arquivos, com S3FS ou como link .
  • agende o s3cmd sync para sincronizar sua pasta com o bucket do S3. link . Isso funciona como um tipo de rsync.

Uma implementação melhor seria para o seu aplicativo da Web fazer o upload e a recuperação diretamente para o bucket do S3. O S3 foi projetado especificamente para esse uso e oferece truques interessantes, como a validação baseada em formulários.

    
por 25.02.2016 / 11:49