Introdução
Um relatório diário precisa de uma cópia armazenada que os colegas possam recuperar mesmo após alterações no arquivo local. O primeiro laboratório de S3 acompanha um relatório no envio, na substituição e na recuperação, depois ensina por que os objetos são excluídos antes do bucket.
O Amazon S3 armazena arquivos como objetos dentro de um bucket; cada objeto tem uma chave que o identifica nesse bucket.
Conclua primeiro Primeiros passos com AWS no LabEx. A conexão da CLI e report.txt estão preparados nesta VM nova; nenhum login pessoal na AWS ou recurso anterior é necessário. Use Terminal para comandos e AWS View na parte superior para observar o armazenamento deste laboratório.
Relação com as certificações
| Certificação | Tarefa do exame | Prática |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Tarefa 3.6 | Armazenamento de objetos S3, uploads, atualizações e downloads. |
| Solutions Architect – Associate (SAA-C03) | Tarefa 3.1 | Armazenamento de objetos S3, uploads, atualizações e downloads. |
| Developer – Associate (DVA-C02) | Tarefa 1.3 | Armazenamento de objetos S3, uploads, atualizações e downloads. |
| Data Engineer – Associate (DEA-C01) | Tarefa 1.1 | Prática dos fundamentos: Armazenamento de objetos S3, uploads, atualizações e downloads. |
Visão geral do laboratório

Crie seu bucket de armazenamento
Nesta etapa, você criará um bucket para um relatório diário de vendas e o observará no AWS View.
Vá ao espaço de trabalho. cd muda o diretório atual do terminal; todos os arquivos locais deste laboratório usam esse diretório.
cd /home/labex/project
Confirme a versão preparada da CLI oficial:
aws --version
A saída começa com aws-cli/2.37.12. A imagem já fornece as ferramentas para que você possa se concentrar nas operações de armazenamento.
Amazon S3 armazena conteúdos de arquivos como objetos. Um bucket contém esses objetos, e uma chave dá nome a um objeto dentro dele. Primeiro, você criará o contêiner; depois, enviará o relatório.
Crie labex-backups. Em aws s3 mb, s3 seleciona armazenamento de objetos e mb significa criar bucket. O prefixo s3:// identifica uma localidade de armazenamento, não uma pasta local.
aws s3 mb s3://labex-backups
Saída esperada:
make_bucket: labex-backups
Liste os buckets com ls, que significa listar:
aws s3 ls
Você deve ver uma linha terminando em labex-backups; a data e a hora variam. Na pré-visualização do AWS View, um cartão labex-backups aparece sem objetos. As setas mostram como a CLI se conecta ao armazenamento; o nó do bucket reflete uma consulta efetiva ao recurso.
Envie e inspecione o relatório
Nesta etapa, você armazenará um relatório como objeto S3 e lerá seu conteúdo efetivamente armazenado pela pré-visualização.
O arquivo local e sua cópia armazenada são separados; envio e download conectam ambos.

Inspecione o arquivo local preparado. cat exibe o conteúdo de um arquivo de texto:
cat report.txt
Saída esperada:
Daily sales: 120 orders
cp significa copiar. O primeiro caminho abaixo é a origem local e o segundo é o destino. A parte após o nome do bucket, report.txt, é a chave do objeto.
aws s3 cp report.txt s3://labex-backups/report.txt
A saída informa um envio de report.txt para s3://labex-backups/report.txt.
Liste os objetos do bucket:
aws s3 ls s3://labex-backups/
A linha de report.txt mostra sua hora de modificação, tamanho e chave. Um envio cria uma cópia armazenada separada: editar apenas o arquivo local não a alteraria.
No AWS View, o cartão do bucket mostra 1 objeto. Clique em report.txt no cartão para expandir seu conteúdo. A pré-visualização deve mostrar Daily sales: 120 orders. Ela lê o objeto armazenado, não o arquivo de origem local.

Atualize e recupere a cópia armazenada
Nesta etapa, você substituirá o relatório, baixará a versão armazenada atual e comprovará que o conteúdo foi preservado no envio e download.
O relatório atualizado contém 145 pedidos. printf escreve texto; \n adiciona uma quebra de linha. O operador > do shell substitui o conteúdo do arquivo local indicado.
printf 'Daily sales: 145 orders\n' > report.txt
Observe a pré-visualização do relatório antes de enviar novamente. Ela ainda mostra 120 orders porque a cópia armazenada não mudou.
Envie para a mesma chave para substituir seu conteúdo atual:
aws s3 cp report.txt s3://labex-backups/report.txt
A pré-visualização agora mostra 145 orders, enquanto a quantidade de objetos permanece 1. Reutilizar uma chave atualiza esse objeto; não cria um segundo objeto com nome neste laboratório.
Baixe invertendo a direção de cp: o caminho S3 agora é a origem, e downloaded.txt é um novo destino local.
aws s3 cp s3://labex-backups/report.txt downloaded.txt
Inspecione o arquivo baixado:
cat downloaded.txt
Saída esperada:
Daily sales: 145 orders
cmp compara dois arquivos byte a byte. Ele não exibe nada e termina com sucesso quando são idênticos. && executa o comando seguinte apenas se essa comparação for bem-sucedida.
cmp report.txt downloaded.txt && echo 'Round trip verified'
Saída esperada:
Round trip verified
Essa comparação comprova que o conteúdo recuperado corresponde à sua origem atualizada. O verificador da etapa lê o S3 de forma independente e compara os conteúdos armazenado e baixado.
Limpe seu armazenamento
Nesta etapa, você aprenderá por que um bucket não vazio não pode ser removido e, depois, excluirá os objetos e o bucket deste laboratório.
rb significa remover bucket. Primeiro, tente removê-lo enquanto o relatório ainda existe:
aws s3 rb s3://labex-backups
Espera-se que este comando falhe com BucketNotEmpty. A falha ensina uma dependência entre recursos: um bucket contém objetos, portanto remova esses objetos antes de remover seu contêiner. O bucket e o objeto devem permanecer visíveis na pré-visualização.
rm remove um objeto no caminho S3 exato:
aws s3 rm s3://labex-backups/report.txt
A saída confirma delete: s3://labex-backups/report.txt. O objeto desaparece da pré-visualização; o bucket permanece vazio.
Agora remova o bucket vazio:
aws s3 rb s3://labex-backups
Saída esperada:
remove_bucket: labex-backups
Confirme que o serviço ainda responde e não lista nenhum bucket restante:
aws s3 ls
O comando termina sem linhas de buckets. AWS View mostra No buckets sem cartões de recursos. Esse estado vem de uma consulta bem-sucedida ao serviço; uma página desconectada não comprovaria a limpeza. Seus arquivos locais de relatório continuam disponíveis, enquanto os recursos de armazenamento foram removidos.

Resumo
Você usou a AWS CLI oficial para criar um bucket, enviar e substituir um objeto, baixá-lo, comparar conteúdos de arquivos e remover os recursos de armazenamento. AWS View conectou seus comandos a mudanças observáveis nos recursos, e a pré-visualização mostrou conteúdo efetivamente armazenado.
Você praticou um fluxo completo de armazenamento de relatórios: organizar arquivos em um bucket, distinguir cópias locais e armazenadas, verificar um download e remover objetos antes de excluir seu bucket.
Para aprofundar o tema, consulte a documentação da AWS: Buckets, objetos e chaves do S3.



