Introdução
Uma equipe publica um diretório de relatórios CSV diários. Você enviará o diretório, publicará mudanças e removerá um relatório armazenado obsoleto protegendo um arquivo separado.
Conclua primeiro Organize documentos com chaves e metadados, incluindo seus conceitos de bucket, chave, prefixo e download. Esta VM nova fornece a conexão da CLI, relatórios locais e um bucket contendo apenas o arquivo. Use Terminal para comandos e a aba AWS View, ao lado, para observar suas mudanças.
Relação com as certificações
Este laboratório oferece prática nos seguintes tópicos de exame.
- Cloud Practitioner (CLF-C02) · Tarefa 3.6: Sincronização de diretórios e exclusão com escopo delimitado no S3.
- Solutions Architect – Associate (SAA-C03) · Tarefa 3.1: Sincronização de diretórios e exclusão com escopo delimitado no S3.
- Developer – Associate (DVA-C02) · Tarefa 1.3: Sincronização de diretórios e exclusão com escopo delimitado no S3.
Publique o diretório de relatórios preparado
Nesta etapa, você publicará dois relatórios locais no prefixo daily/ e entenderá como seus nomes de arquivo correspondem às chaves de objetos.
Entre no espaço de trabalho com cd (mudar de diretório):
cd /home/labex/project
Inspecione o diretório de relatórios preparado com ls, que lista seus nomes de arquivo locais:
ls reports
A listagem contém monday.csv e tuesday.csv. Ambos são arquivos CSV: um cabeçalho nomeia as colunas, e vírgulas separam os valores em cada registro. Inspecione o relatório de segunda-feira com cat, que exibe o conteúdo de um arquivo:
cat reports/monday.csv
date,orders
2026-09-28,120
Liste o bucket preparado. Para uma localidade S3, --recursive exibe as chaves completas em todo o bucket:
aws s3 ls s3://labex-report-delivery/ --recursive
Apenas archive/retention.txt está presente. O arquivo pertence a um fluxo separado e deve sobreviver à sua sincronização diária.
aws s3 sync recebe uma origem e um destino, nessa ordem. Ele considera recursivamente os arquivos no diretório de origem; você não precisa de --recursive para sync. Cada nome relativo de arquivo se torna uma chave abaixo do prefixo de destino. Portanto, reports/monday.csv se torna daily/monday.csv, em vez de daily/reports/monday.csv.
aws s3 sync reports/ s3://labex-report-delivery/daily/
O comando informa envios de segunda-feira e terça-feira; a ordem da saída pode variar. Liste o bucket inteiro novamente:
aws s3 ls s3://labex-report-delivery/ --recursive
Você deve encontrar três chaves: archive/retention.txt, daily/monday.csv e daily/tuesday.csv. AWS View mostra os mesmos objetos. Clique em daily/monday.csv para ler o relatório CSV de duas linhas armazenado. O arquivo permanece fora do destino daily/ que você selecionou.
Sincronize uma mudança e um novo relatório
Nesta etapa, você atualizará um relatório, adicionará outro e transferirá essas mudanças sem enviar novamente um relatório inalterado.
Executar sync com a mesma origem e destino é seguro quando nenhum dos lados mudou:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Não há linhas de envio quando os arquivos existentes já estão atualizados. Para transferências do computador local para S3, a CLI considera se a chave de destino está ausente, se os tamanhos diferem ou se o arquivo local tem uma hora de modificação mais recente. Ela não observa o diretório continuamente: você executa sync quando quer publicar mudanças.
Adicione um lote tardio de 25 pedidos ao relatório de segunda-feira. printf exibe o texto entre aspas; \n termina a linha. O >> do shell acrescenta a um arquivo local em vez de substituí-lo:
printf '2026-09-28,25\n' >> reports/monday.csv
Inspecione o resultado de três linhas:
cat reports/monday.csv
date,orders
2026-09-28,120
2026-09-28,25
Crie o relatório de quarta-feira. Aqui, > grava um novo arquivo, substituindo qualquer conteúdo existente nesse caminho:
printf 'date,orders\n2026-09-30,150\n' > reports/wednesday.csv
Antes de publicar, o relatório armazenado de segunda-feira ainda tem duas linhas e quarta-feira está ausente do AWS View. Editar apenas arquivos locais não altera o S3.
Publique novamente:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Você deve ver envios do relatório alterado de segunda-feira e do novo relatório de quarta-feira. Terça-feira está inalterado, portanto não é enviado. Esta é uma transferência incremental: ela copia mudanças em vez de copiar indiscriminadamente todos os arquivos.
No AWS View, segunda-feira agora mostra o lote tardio e quarta-feira aparece. Baixe segunda-feira para um caminho local separado para comparar o conteúdo efetivamente armazenado:
aws s3 cp s3://labex-report-delivery/daily/monday.csv retrieved-monday.csv
cmp compara arquivos byte a byte. Ele termina com sucesso sem exibir diferenças quando os conteúdos correspondem. && exibe a mensagem apenas após essa comparação bem-sucedida:
cmp reports/monday.csv retrieved-monday.csv && echo 'Updated report matches'
Updated report matches
Isso confirma que a atualização chegou ao armazenamento; apenas uma mensagem de comando bem-sucedido não diria quais bytes foram armazenados.
O exemplo abaixo mostra o relatório armazenado de segunda-feira expandido após a atualização. Quarta-feira está presente, e o arquivo separado permanece no bucket:

Espelhe apenas o prefixo diário
Nesta etapa, você removerá um relatório obsoleto do destino protegendo o arquivo não relacionado.
O destino de sync é daily/; archive/ fica fora desse escopo.

O relatório de terça-feira não faz mais parte da coleção diária publicada. Remova apenas esse arquivo local com rm (remover). Este é um comando do sistema de arquivos local, portanto ele não exclui um objeto S3:
rm reports/tuesday.csv
Execute sync comum novamente:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Liste o prefixo de destino:
aws s3 ls s3://labex-report-delivery/daily/ --recursive
Terça-feira ainda aparece. Por padrão, sync copia arquivos ausentes ou atualizados, mas deixa objetos extras no destino. Remover apenas um arquivo de origem não remove sua cópia armazenada.
Um espelho mantém o conjunto de arquivos do destino alinhado com a origem, incluindo remoções. --delete remove chaves de destino sem um arquivo correspondente na origem. Primeiro, combine-o com --dryrun, que exibe as operações pretendidas sem realizá-las:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete --dryrun
O teste deve listar apenas a exclusão de daily/tuesday.csv. Segunda-feira e quarta-feira correspondem à origem, e archive/retention.txt está fora de daily/. Mantenha o prefixo de destino exato: usar a raiz do bucket colocaria o arquivo no escopo.
Depois de conferir a exclusão pretendida, execute a mesma operação sem --dryrun:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete
O comando informa a exclusão de terça-feira. Inspecione o bucket inteiro para conferir tanto o que desapareceu quanto o que foi preservado:
aws s3 ls s3://labex-report-delivery/ --recursive
As chaves restantes são daily/monday.csv, daily/wednesday.csv e archive/retention.txt. No AWS View, abra o objeto de arquivo e confirme que ele ainda contém Keep the archive outside daily synchronization. Sua operação de espelhamento afetou apenas o prefixo escolhido.
Remova os recursos de armazenamento do laboratório
Nesta etapa, você limpará os relatórios e o arquivo criados para este exercício e, depois, removerá o bucket vazio.
O arquivo precisava sobreviver ao espelhamento diário, mas também é um recurso descartável que pertence a este exercício. Agora é seguro removê-lo explicitamente. Primeiro, remova os dois objetos de relatórios diários usando uma operação recursiva restrita a daily/:
aws s3 rm s3://labex-report-delivery/daily/ --recursive
A saída confirma as duas exclusões de relatórios. Remova o arquivo pela chave completa:
aws s3 rm s3://labex-report-delivery/archive/retention.txt
Confirme que o bucket está vazio:
aws s3 ls s3://labex-report-delivery/ --recursive
Um comando bem-sucedido sem linhas de objetos comprova que está vazio. aws s3 rb (remover bucket) agora pode remover o contêiner:
aws s3 rb s3://labex-report-delivery
A saída é remove_bucket: labex-report-delivery. Confira os buckets restantes:
aws s3 ls
Não restam linhas de buckets. AWS View mostra No buckets após uma consulta bem-sucedida do estado. Seus arquivos locais de relatórios permanecem para revisão; excluir recursos de armazenamento não remove essas cópias locais.
Resumo
Você publicou um diretório local de relatórios em um prefixo S3, repetiu sync sem mudanças, enviou um relatório modificado e um novo relatório e comparou uma atualização recuperada com sua origem. Você viu que sync comum mantém objetos extras no destino; depois, visualizou e realizou um espelhamento com --delete restrito a daily/.
O arquivo foi preservado nessa operação porque estava fora do prefixo de destino. Você verificou o novo estado e os dados preservados antes de limpar todos os recursos de armazenamento do laboratório. Para fluxos futuros, escolha a origem, o destino e o escopo de exclusão antes de executar sync.



