ATUALIZAÇÃO: Claro, assim que eu clico em publicar, um colega de trabalho menciona que s3cmd
tem essa funcionalidade incorporada (e mais!), Incluindo verificação de tamanho de arquivo md5 + para não enviar arquivos que já estão em s3. Verifique o s3cmd sync
comando.
Digamos que você tenha um monte de arquivos em um servidor da web e gostaria de colocá-los todos em um balde no s3. Talvez você queira configurar isso como uma tarefa cron para que o balde seja atualizado, digamos, todas as noites.
find . -type f | sed 's|^./||g' | xargs -I {} s3cmd put {} s3://<REPLACE BUCKET NAME HERE>/{}
O find
comando lista todos os arquivos recursivamente que estão aninhados em algum lugar dentro do diretório atual. Em seguida, usamos sed
para substituir todos os ./
no início dos caminhos do arquivo para que não criemos um diretório extra chamado .
no topo do nosso balde s3.
Em seguida, usamos xargs
para executar o s3cmd put
comando em cada um dos nomes dos arquivos. Estamos usando a -I {}
sintaxe de espaço reservado que aprendi no início desta semana .
s3cmd é um pequeno utilitário excelente. As instruções para instalação s3cmd
estão aqui .