9 comandos do AWS S3 com exemplos para gerenciar bucket e dados

Publicados: 2022-03-15

O controle e o gerenciamento de dados podem ser uma tarefa árdua. Esses comandos do AWS S3 ajudarão você a gerenciar seus buckets e dados do AWS S3 de maneira rápida e eficiente.

AWS S3 é o serviço de armazenamento de objetos fornecido pela AWS. É o serviço de armazenamento mais usado da AWS que pode armazenar virtualmente uma quantidade infinita de dados. É altamente disponível, durável e fácil de integrar com vários outros serviços da AWS.

O AWS S3 pode ser usado por pessoas com quaisquer requisitos, como armazenamento de aplicativos móveis/web, armazenamento de big data, armazenamento de dados de aprendizado de máquina, hospedagem de sites estáticos e muito mais.

Se você estiver usando o S3 em seu projeto, saberá que, dada a grande capacidade de armazenamento, o gerenciamento de 100s de buckets e terabytes de dados nesses buckets pode ser um trabalho exigente. Temos uma lista de comandos do AWS S3 com exemplos que você pode usar para gerenciar seus buckets e dados do AWS S3 com eficiência.

Configuração da AWS CLI

Depois de fazer download e instalar a AWS CLI com êxito, você precisa configurar as credenciais da AWS para poder acessar sua conta e serviços da AWS. Vamos ver rapidamente como você pode configurar a AWS CLI.

A primeira etapa é criar um usuário com acesso programático à conta da AWS. Lembre-se de marcar essa caixa ao criar um usuário para a AWS CLI.

Dê as permissões e crie um usuário. Na tela final, depois de criar este usuário com sucesso, copie o ID da chave de acesso e a chave de acesso secreta para este usuário. Usaremos essas credenciais para fazer login por meio da AWS CLI.

Agora vá para o terminal de sua escolha e execute o seguinte comando.

 aws configurar

Insira o ID da chave de acesso e a chave de acesso secreta quando solicitado. Selecione qualquer região da AWS de sua escolha e o formato de saída do comando. Eu pessoalmente prefiro usar o formato JSON. Isso não é grande coisa, você sempre pode alterar esses valores mais tarde.

Agora você pode executar qualquer comando da AWS CLI no console. Vamos agora percorrer os comandos do AWS S3.

cp

O comando cp simplesmente copia os dados de e para os buckets do S3. Ele pode ser usado para copiar arquivos do local para o S3, do S3 para o local e entre dois buckets do S3. Existem muitos outros parâmetros que você pode fornecer com os comandos.

Por exemplo, parâmetro -dryrun para testar o comando, parâmetro –storage-class para especificar a classe de armazenamento de seus dados no S3, outros parâmetros para definir a criptografia e muito mais. O comando cp oferece controle total sobre como você configura sua segurança de dados no S3.

Uso

 aws s3 cp <FONTE> <DESTINATION> [--options]

Exemplos

Copiar dados do local para o S3

 aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

Copie os dados do S3 para o local

 aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

Copiar dados entre buckets do S3

 aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Copiar dados de local para S3 – IA

 aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

Copie todos os dados de uma pasta local para o S3

 aws s3 cp ./local_folder s3://bucket_name --recursive

ls

O comando ls é usado para listar os buckets ou o conteúdo dos buckets. Portanto, se você simplesmente deseja visualizar informações sobre seus buckets ou os dados nesses buckets, você pode usar o comando ls.

Uso:

 aws s3 ls NONE ou <BUCKET_NAME> [--options]

Exemplos

Listar todos os buckets da conta

 aws s3 ls

Resultado:
02-02-2022 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
29/03/2022 10:52:33 BUCKET_NAME_3

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

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

 aws s3 ls BUCKET_NAME_1 ou s3://BUCKET_NAME_1 

Resultado:
                           PRE amostraPrefixo/
09-12-2021 12:23:20 8754 arquivo_1.png
09-12-2021 12:23:21 1290 arquivo_2.json
09-12-2021 12:23:21 3088 arquivo_3.html

Este comando lista todos os objetos de nível superior em um bucket do S3. Observe aqui que os objetos com o prefixo samplePrefix/ não são mostrados aqui apenas os objetos de nível superior.

Listar todos os objetos em um bucket

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

Resultado:
09-12-2021 12:23:20 8754 arquivo_1.png
09-12-2021 12:23:21 1290 arquivo_2.json
09-12-2021 12:23:21 3088 arquivo_3.html
2021-12-09 12:23:20 16328 samplePrefix/file_1.txt
2021-12-09 12:23:20 29325 samplePrefix/sampleSubPrefix/file_1.css

Este comando lista todos os objetos em um bucket do S3. Observe aqui que os objetos com o prefixo samplePrefix/ e todos os subprefixos também são exibidos.

mb

O comando mb é usado simplesmente para criar novos buckets do S3. Este é um comando bastante simples, mas para criar novos buckets, o nome do novo bucket deve ser exclusivo em todos os buckets do S3.

Uso

 aws s3 mb <BUCKET_NAME>

Exemplo

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

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

mv

O comando mv simplesmente move os dados de e para os buckets do S3. Assim como o comando cp, o comando mv é usado para mover dados de local para S3, S3 para local ou entre dois buckets do S3.

A única diferença entre o comando mv e o cp é que ao usar o comando mv o arquivo é deletado da fonte. A AWS move este arquivo para o destino. Há muitas opções que você pode especificar com o comando.

Uso

 aws s3 mv <FONTE> <DESTINATION> [--options]

Exemplos

Mover dados de local para S3

 aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

Mover dados do S3 para local

 aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

Mover dados entre buckets do S3

 aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Mover dados de local para S3 – IA

 aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

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

 aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

prescrever

O comando presign gera um URL pré-assinado para uma chave no bucket do S3. Você pode usar esse comando para gerar URLs que podem ser usados ​​por outras pessoas para acessar um arquivo na chave de bucket do S3 especificada.

Uso

aws s3 presign <OBJECT_KEY> –expires-in <TIME_IN_SECONDS>

Exemplo

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

 aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Resultado:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.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=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13e167b1055bcd7a45c13e167b1055bcd7a45c13e167b1055bcd7a45c13a3396debd3db

rb

O comando rb é usado simplesmente para excluir buckets do S3.

Uso

 aws rb <BUCKET_NAME>

Exemplo

Exclua um bucket do S3.

 aws s3 mb myBucketName
# Este comando falha se houver algum dado neste bucket.

Exclua um bucket do S3 junto com os dados no bucket do S3.

 aws s3 mb myBucketName --force

rm

O comando rm é usado simplesmente para excluir os objetos nos buckets do S3.

Uso

 aws s3 rm <S3Uri_To_The_File>

Exemplos

Exclua um arquivo do bucket do S3.

 aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

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

 aws s3 rm s3://bucket_name/sample_prefix --recursive

Exclua todos os arquivos em um bucket do S3.

 aws s3 rm s3://bucket_name --recursive

sincronizar

O comando sync copia e atualiza arquivos da origem para o destino, assim como o comando cp. É importante que entendamos a diferença entre o cp e o comando sync. Quando você usa cp, ele copia dados da origem para o destino, mesmo que os dados já existam no destino.

Ele também não excluirá arquivos do destino se eles forem excluídos da origem. No entanto, a sincronização analisa o destino antes de copiar seus dados e copia apenas os arquivos novos e atualizados. O comando sync é semelhante ao commit e push das alterações para um branch remoto no git. O comando de sincronização oferece muitas opções para personalizar o comando.

Uso

 aws s3 sync <FONTE> <DESTINATION> [--options]

Exemplos

Sincronize a pasta local com o S3

 aws s3 sync ./local_folder s3://bucket_name

Sincronize dados do S3 com uma pasta local

 aws s3 sync s3://bucket_name ./local_folder

Sincronize dados entre dois buckets do S3

 aws s3 sync s3://bucket_name s3://bucket_name_2

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

 aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt

local na rede Internet

Você pode usar buckets do S3 para hospedar sites estáticos. O comando website é usado para configurar a hospedagem de site estático do S3 para seu bucket.

Você especifica o índice e os arquivos de erro e o S3 fornece uma URL onde você pode visualizar o arquivo.

Uso

 site aws s3 <S3_URI> [--options]

Exemplo:

Configure a hospedagem estática para um bucket do S3 e especifique os arquivos de índice e erro

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

Conclusão

Espero que o acima dê uma ideia sobre alguns dos comandos do AWS S3 usados ​​com frequência para gerenciar buckets. Se você estiver interessado em saber mais, confira os detalhes da certificação da AWS.