Armazene e recupere arquivos no S3

AWSBeginner
Pratique Agora

Introdução

Uma equipe de relatórios precisa armazenar um relatório diário de vendas e recuperar a cópia atual. Você criará um bucket S3, enviará e atualizará o relatório, conferirá um download e removerá seus recursos de prática.

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 a aba AWS View, ao lado, para observar o armazenamento deste laboratório.

Relação com as certificações

Este laboratório oferece prática nos seguintes tópicos de exame.

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.6. 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.

Cópias local e armazenada

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.

O exemplo abaixo mostra o relatório enviado expandido no cartão do bucket. O conteúdo é lido do armazenamento.

Relatório armazenado e topologia S3

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.

A visualização de limpeza abaixo mostra que não há cartões de buckets restantes após uma consulta bem-sucedida do estado.

Armazenamento vazio após a limpeza

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.