O S3 é o serviço da Amazon AWS para armazenamento de arquivos, você pode utiliza-lo, por exemplo, para armazenar as imagens do seu site, os scripts, ou até mesmo o site inteiro, como é o caso desse site aqui. Vamos ver como automatizar o envio dos arquivos do seu computador para o S3.
O primeiro passo é configurar o bucket do Amazon S3 onde os arquivos ficarão.
Para criar um bucket, basta acessar a área S3 (Simple Storage Service) do painel do Amazon AWS
Utilize a opção “Create bucket” e informe o nome e a região para o bucket:
Você pode selecionar qualquer região, no entanto:
Provavelmente muitos dos sites que você acessa estão hospedados fora do Brasil (como esse aqui), no entanto, eles não são muito mais lentos, então eu costumo escolher a opção mais barata (Oregon) para criar recursos no AWS (instâncias EC2, buckets do S3, etc.) mesmo o acesso a esses recursos tendo uma latência maior.
Você pode adicionar permissão de leitura pública para os arquivos desse bucket:
E cria-lo.
Utilizando o próprio painel do S3 dentro do console do Amazon AWS é possível realizar o upload de um arquivo:
No entanto, esse processo acaba sendo muito trabalhoso quando se tem o tempo todo muitos arquivos para atualizar
É possível utilizar o AWS Cli através do prompt de comandos para enviar todos os arquivos de uma pasta, basta fazer o seguinte:
No painel do Amazon AWS acesse a área “IAM”, crie um novo usuário e adicione a permissão: “AmazonS3FullAccess”, para esse novo usuário você receberá duas chaves:
Você precisará dessas chaves, guarde-as.
Faça o download do python em: https://www.python.org/downloads/
Rode o setup e marque as seguintes opções:
Abra um prompt de comando do Windows (se estava aberto antes da instalação feche-o e abra novamente)
Para verificar se o python foi instalado corretamente, utilize o comando:
Faça o download do AWS Cli:
https://s3.amazonaws.com/aws-cli/AWSCLI64.msi
E rode o setup, para mais informações de instalação, consulte: http://docs.aws.amazon.com/cli/latest/userguide/installing.html
Execute no prompt de comando do windows:
Abra um prompt de comando do Windows (se estava aberto antes da instalação feche-o e abra novamente)
Para verificar se o aws cli foi instalado corretamente, utilize o comando:
No prompt de comando, execute:
Será solicitados o “Access Key” e o “Secret Access Key”:
Informe os dados do usuário que você criou no Amazon IAM.
Para mais informações de configuração, consulte: http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
Agora ficou fácil! Para enviar todos os arquivos de uma pasta para o bucket do S3, basta executar:
Substituindo nesse comando:
E pronto!
Para mais informações, consulte: http://docs.aws.amazon.com/cli/latest/userguide/using-s3-commands.html
Como eu queria algo que funcionasse como o Dropbox, ou seja, que fica monitorando alterações em uma pasta e envia os arquivos automáticamente para o S3, eu acabei criando o seguinte serviço windows:
https://github.com/Enginesoft/Enginesoft.SyncS3
Basta instala-lo como um Serviço Windows, seguindo as instruções de configuração e ele passa a monitorar uma pasta e enviar os arquivos modificados para o S3.
O código foi escrito em C# e é open source, então você pode modifica-lo se precisar.