Domine o AWS S3: 9 Comandos Essenciais com Exemplos!

últimas postagens

Gerenciando Seus Dados e Buckets do AWS S3 Eficientemente

O controle e a administração de dados podem ser uma tarefa complexa e desafiadora. No entanto, os comandos do AWS S3 podem ser seus aliados para gerenciar seus buckets e dados no AWS S3 de maneira rápida e eficaz.

AWS S3 é o serviço de armazenamento de objetos da AWS. É um dos serviços de armazenamento mais populares da AWS, capaz de armazenar uma quantidade virtualmente ilimitada de dados. Ele se destaca pela sua alta disponibilidade, durabilidade e facilidade de integração com outros serviços da AWS.

O AWS S3 atende a diversas necessidades, como armazenamento de aplicativos móveis e web, armazenamento de big data, armazenamento de dados para aprendizado de máquina e hospedagem de sites estáticos, entre outros.

Se você já utiliza o S3 em seus projetos, sabe que, dada sua grande capacidade de armazenamento, gerenciar centenas de buckets e terabytes de dados nesses buckets pode ser uma tarefa árdua. Para isso, apresentamos uma lista de comandos do AWS S3 com exemplos práticos que você pode usar para gerenciar seus buckets e dados do AWS S3 com eficiência.

Configurando a AWS CLI

Após o download e a instalação bem-sucedida da AWS CLI, é necessário configurar as credenciais da AWS para ter acesso à sua conta e aos serviços da AWS. Vamos analisar rapidamente como configurar a AWS CLI.

O primeiro passo é criar um usuário com acesso programático à sua conta AWS. Ao criar o usuário para a AWS CLI, certifique-se de marcar essa opção.

Conceda as permissões necessárias e crie o usuário. Na tela final, após a criação bem-sucedida do usuário, copie o ID da chave de acesso e a chave de acesso secreta. Essas credenciais serão usadas para fazer login pela AWS CLI.

Agora, abra o terminal de sua preferência e execute o seguinte comando:

aws configure

Insira o ID da chave de acesso e a chave de acesso secreta quando solicitado. Selecione a região AWS de sua preferência e o formato de saída do comando. O formato JSON é uma opção bastante utilizada e recomendada, mas você pode alterar essas configurações posteriormente, caso necessário.

Com tudo configurado, você já pode executar comandos da AWS CLI diretamente no console. Vamos explorar os comandos do AWS S3.

cp (Copiar)

O comando ‘cp’ tem como função copiar dados de e para buckets S3. Ele permite copiar arquivos do seu sistema local para o S3, do S3 para o seu sistema local, e também entre dois buckets S3. O comando oferece muitos parâmetros adicionais, permitindo um controle mais detalhado.

Alguns exemplos incluem o parâmetro ‘-dryrun’ para testar o comando sem realizar a cópia, o parâmetro ‘–storage-class’ para especificar a classe de armazenamento dos dados no S3, além de outros parâmetros para configurar a criptografia. O comando ‘cp’ oferece um controle abrangente sobre a segurança dos seus dados no S3.

Utilização

aws s3 cp <ORIGEM> <DESTINO> [--opções]

Exemplos

Copiar dados do local para o S3

aws s3 cp arquivo.txt s3://nome_do_bucket/arquivo2.txt

Copiar dados do S3 para o local

aws s3 cp s3://nome_do_bucket/arquivo2.txt arquivo.txt

Copiar dados entre buckets S3

aws s3 cp s3://nome_do_bucket/arquivo.txt s3://nome_do_bucket2/arquivo2.txt

Copiar dados do local para o S3 com classe de armazenamento IA

aws s3 cp arquivo.txt s3://nome_do_bucket/arquivo2.txt --storage-class STANDARD_IA

Copiar todos os dados de uma pasta local para o S3

aws s3 cp ./pasta_local s3://nome_do_bucket --recursive

ls (Listar)

O comando ‘ls’ é utilizado para listar os buckets ou o conteúdo dos buckets. Se você precisar visualizar informações sobre seus buckets ou os dados dentro deles, este é o comando ideal.

Utilização

aws s3 ls NONE ou <NOME_DO_BUCKET> [--opções]

Exemplos

Listar todos os buckets da conta

aws s3 ls

Saída:
2022-02-02 18:20:14 NOME_DO_BUCKET_1
2022-03-20 13:12:43 NOME_DO_BUCKET_2
2022-03-29 10:52:33 NOME_DO_BUCKET_3

Este comando lista todos os buckets em sua conta, juntamente com a data de criação.

Listar todos os objetos de nível superior em um bucket

aws s3 ls NOME_DO_BUCKET_1 ou s3://NOME_DO_BUCKET_1

Saída:
                           PRE prefixo_exemplo/
2021-12-09 12:23:20       8754 arquivo_1.png
2021-12-09 12:23:21       1290 arquivo_2.json
2021-12-09 12:23:21       3088 arquivo_3.html

Este comando lista os objetos de nível superior em um bucket S3. Note que objetos com o prefixo ‘prefixo_exemplo/’ não são exibidos aqui, apenas os objetos de nível superior.

Listar todos os objetos em um bucket

aws s3 ls NOME_DO_BUCKET_1 ou s3://NOME_DO_BUCKET_1 --recursive

Saída:
2021-12-09 12:23:20       8754 arquivo_1.png
2021-12-09 12:23:21       1290 arquivo_2.json
2021-12-09 12:23:21       3088 arquivo_3.html
2021-12-09 12:23:20      16328 prefixo_exemplo/arquivo_1.txt
2021-12-09 12:23:20      29325 prefixo_exemplo/sub_prefixo_exemplo/arquivo_1.css

Este comando lista todos os objetos em um bucket S3, incluindo objetos com prefixos e subprefixos.

mb (Criar Bucket)

O comando ‘mb’ é usado para criar novos buckets S3. É um comando simples, mas é importante lembrar que o nome do novo bucket precisa ser único em todos os buckets S3.

Utilização

aws s3 mb <NOME_DO_BUCKET>

Exemplo

Criar um novo bucket em uma região específica

aws s3 mb meuBucketUnico --region eu-west-1

mv (Mover)

O comando ‘mv’ permite mover dados de e para buckets S3. Semelhante ao comando ‘cp’, ele pode ser usado para mover dados entre o sistema local e o S3, ou entre dois buckets S3.

A principal diferença entre ‘mv’ e ‘cp’ é que, ao utilizar ‘mv’, o arquivo é excluído da origem após ser movido para o destino. Assim como ‘cp’, ‘mv’ oferece diversas opções que podem ser especificadas com o comando.

Utilização

aws s3 mv <ORIGEM> <DESTINO> [--opções]

Exemplos

Mover dados do local para o S3

aws s3 mv arquivo.txt s3://nome_do_bucket/arquivo2.txt

Mover dados do S3 para o local

aws s3 mv s3://nome_do_bucket/arquivo2.txt arquivo.txt

Mover dados entre buckets S3

aws s3 mv s3://nome_do_bucket/arquivo.txt s3://nome_do_bucket2/arquivo2.txt

Mover dados do local para o S3 com classe de armazenamento IA

aws s3 mv arquivo.txt s3://nome_do_bucket/arquivo2.txt --storage-class STANDARD_IA

Mover todos os dados de um prefixo no S3 para uma pasta local.

aws s3 mv s3://nome_do_bucket/prefixo_exemplo ./pasta_local --recursive

presign (Gerar URL Pré-assinada)

O comando ‘presign’ gera um URL pré-assinado para uma chave em um bucket S3. Esse URL pode ser compartilhado com outras pessoas para que possam acessar o arquivo na chave do bucket S3 especificada.

Utilização

aws s3 presign <CHAVE_DO_OBJETO> –expires-in <TEMPO_EM_SEGUNDOS>

Exemplo

Gerar um URL pré-assinado válido por 1 hora para um objeto no bucket.

aws s3 presign s3://nome_do_bucket/prefixo_exemplo/arquivo.png --expires-in 3600

Saída:
https://s3.ap-south-1.amazonaws.com/nome_do_bucket/prefixo_exemplo/arquivo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

rb (Remover Bucket)

O comando ‘rb’ é usado para excluir buckets do S3.

Utilização

aws rb <NOME_DO_BUCKET>

Exemplo

Excluir um bucket S3.

aws s3 mb meuBucket
# Este comando falhará se houver algum dado no bucket.

Excluir um bucket S3, juntamente com todos os seus dados.

aws s3 mb meuBucket --force

rm (Remover Objeto)

O comando ‘rm’ é utilizado para excluir objetos dentro de buckets S3.

Utilização

aws s3 rm <S3Uri_Para_O_Arquivo>

Exemplos

Excluir um arquivo de um bucket S3.

aws s3 rm s3://nome_do_bucket/prefixo_exemplo/arquivo2.txt

Excluir todos os arquivos com um prefixo específico em um bucket S3.

aws s3 rm s3://nome_do_bucket/prefixo_exemplo --recursive

Excluir todos os arquivos em um bucket S3.

aws s3 rm s3://nome_do_bucket --recursive

sync (Sincronizar)

O comando ‘sync’ copia e atualiza arquivos da origem para o destino, de forma similar ao comando ‘cp’. É importante entender a diferença entre ‘cp’ e ‘sync’. ‘cp’ copia os dados da origem para o destino, mesmo que os dados já existam no destino, e não exclui arquivos do destino se eles forem removidos da origem. Por outro lado, ‘sync’ analisa o destino antes de copiar os dados e copia apenas arquivos novos ou atualizados. O comando ‘sync’ é semelhante a enviar e receber alterações para um branch remoto no Git. Ele também oferece diversas opções para personalizar o processo de sincronização.

Utilização

aws s3 sync <ORIGEM> <DESTINO> [--opções]

Exemplos

Sincronizar a pasta local com o S3

aws s3 sync ./pasta_local s3://nome_do_bucket

Sincronizar dados do S3 com uma pasta local

aws s3 sync s3://nome_do_bucket ./pasta_local

Sincronizar dados entre dois buckets S3

aws s3 sync s3://nome_do_bucket s3://nome_do_bucket2

Mover dados entre dois buckets S3, excluindo todos os arquivos .txt

aws s3 sync s3://nome_do_bucket s3://nome_do_bucket2 --exclude "*.txt

website (Hospedagem de Site)

Buckets S3 podem ser utilizados para hospedar sites estáticos. O comando ‘website’ é usado para configurar a hospedagem de site estático do S3 para o seu bucket.

Você especifica os arquivos de índice e erro, e o S3 fornece um URL para acessar o seu site.

Utilização

aws s3 website <S3_URI> [--opções]

Exemplo:

Configurar a hospedagem estática para um bucket S3, especificando os arquivos de índice e erro.

aws s3 website s3://nome_do_bucket --index-document index.html --error-document error.html

Conclusão

Esperamos que este guia tenha fornecido uma visão geral dos comandos do AWS S3 mais frequentemente utilizados para gerenciamento de buckets. Para aprofundar seus conhecimentos, explore os detalhes da certificação da AWS.