Envie todos os arquivos em um diretório para um balde s3

ATUALIZAÇÃO: Claro, assim que eu clico em publicar, um colega de trabalho menciona que s3cmdtem 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 synccomando.


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 findcomando lista todos os arquivos recursivamente que estão aninhados em algum lugar dentro do diretório atual. Em seguida, usamos sedpara 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 xargspara executar o s3cmd putcomando 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 .