Introdução
Uma equipe armazena documentos de finanças e RH em um único bucket S3. Você dará nomes e propriedades significativos a eles, recuperará um relatório e removerá o grupo de finanças preservando RH até a limpeza final.
Conclua primeiro Armazene e recupere arquivos no S3. Esta VM nova fornece a conexão da CLI e documentos locais; nenhum recurso anterior ou credencial pessoal é necessário. Use Terminal para comandos e a aba AWS View, ao lado, para comparar chaves, propriedades e conteúdos armazenados.
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: Chaves, prefixos e metadados de objetos S3.
- Solutions Architect – Associate (SAA-C03) · Tarefa 3.1: Chaves, prefixos e metadados de objetos S3.
- Developer – Associate (DVA-C02) · Tarefa 1.3: Chaves, prefixos e metadados de objetos S3.
Escolha chaves e envie documentos das equipes
Nesta etapa, você usará chaves de objetos significativas para separar documentos de dois departamentos em um bucket.
Um diretório local armazena arquivos na sua máquina; um bucket armazena objetos no S3. Entre no espaço de trabalho preparado com cd (mudar de diretório):
cd /home/labex/project
O diretório documents fornecido contém dois pequenos arquivos de texto. cat exibe seus conteúdos para que você saiba o que está prestes a armazenar:
cat documents/revenue.csv
month,revenue
2026-09,42000
Um arquivo CSV usa vírgulas para separar colunas. Aqui, as duas colunas são mês e receita; cada linha seguinte é um registro.
cat documents/welcome.txt
Welcome to the reporting team.
Crie um bucket com aws s3 mb (criar bucket). s3:// identifica uma localidade de armazenamento em vez de um caminho local:
aws s3 mb s3://labex-team-documents
O comando informa make_bucket: labex-team-documents.
A chave de finanças será finance/2026-09/revenue.csv. As barras tornam o nome fácil de agrupar, mas o S3 não cria diretórios de sistema de arquivos: a string inteira é uma única chave de objeto. Seu prefixo finance/ agrupa documentos de finanças; o prefixo mais longo finance/2026-09/ restringe o grupo a um mês.
Content-Type é um metadado padrão que descreve o formato de mídia de um arquivo. text/csv identifica texto separado por vírgulas. Metadados personalizados contêm seus próprios pares descritivos de chave e valor. Aqui, department=finance e period=2026-09 descrevem o relatório; eles não concedem permissões nem alteram seu conteúdo.
Este exemplo separa o prefixo da chave do restante do nome; os metadados pertencem ao objeto.

aws s3 cp copia o primeiro caminho para o segundo. --content-type define explicitamente o formato. --metadata aceita pares name=value separados por vírgulas. As aspas mantêm o argumento de metadados unido. Uma barra invertida no final de uma linha continua o mesmo comando na linha seguinte:
aws s3 cp documents/revenue.csv s3://labex-team-documents/finance/2026-09/revenue.csv \
--content-type text/csv \
--metadata 'department=finance,period=2026-09'
A mensagem de envio indica a chave de destino. Envie o documento de boas-vindas com sua própria chave e propriedades. text/plain significa texto comum sem um formato de documento especializado:
aws s3 cp documents/welcome.txt s3://labex-team-documents/hr/welcome.txt \
--content-type text/plain \
--metadata 'department=hr'
Use ls (listar) e --recursive para exibir chaves completas em todo o bucket em vez de agrupá-las em prefixos semelhantes a pastas:
aws s3 ls s3://labex-team-documents/ --recursive
Duas linhas terminam em finance/2026-09/revenue.csv e hr/welcome.txt; os horários variam. AWS View mostra ambas as chaves no mesmo bucket. Você organizou objetos por nome, sem criar buckets separados para cada departamento.
Inspecione propriedades e recupere um relatório
Nesta etapa, você selecionará os objetos de um departamento, inspecionará metadados e comprovará que um relatório baixado corresponde à sua origem.
aws s3api expõe operações individuais da API do S3. Os comandos de nível mais alto aws s3 lidam com fluxos comuns de arquivos; ambos operam sobre os mesmos objetos. list-objects-v2 lista registros de objetos. --bucket indica o contêiner e --prefix limita as chaves retornadas pelo S3 às que começam com essa string:
aws s3api list-objects-v2 --bucket labex-team-documents --prefix finance/
Encontre finance/2026-09/revenue.csv em Contents. Não há objeto de RH nesta resposta porque hr/welcome.txt não começa com finance/. Um prefixo filtra nomes, não metadados personalizados: apenas department=finance não colocaria uma chave com outro nome neste resultado.
head-object recupera as propriedades do objeto sem baixar seu corpo. Forneça a chave completa, incluindo seu prefixo:
aws s3api head-object --bucket labex-team-documents --key finance/2026-09/revenue.csv
A resposta inclui ContentType definido como text/csv, ContentLength (bytes armazenados) e um objeto Metadata contendo department e period. Outros campos, como horários e ETag, descrevem o objeto armazenado. Os metadados estão associados à cópia armazenada, não ao arquivo local original.
No AWS View, clique em finance/2026-09/revenue.csv. O cartão expandido mostra seu Content-Type, metadados personalizados e o conteúdo CSV efetivamente armazenado. Compare-os com a resposta da CLI.
Este exemplo mostra o objeto de finanças expandido, com propriedades e conteúdo lidos do armazenamento:

Baixe usando a URI S3 como origem e um novo nome de arquivo local como destino. Seu nome não precisa corresponder à chave:
aws s3 cp s3://labex-team-documents/finance/2026-09/revenue.csv retrieved-revenue.csv
Inspecione o que você recuperou:
cat retrieved-revenue.csv
Ele deve mostrar as mesmas duas linhas CSV que você inspecionou antes. cmp compara dois arquivos locais byte a byte; não produz saída quando há correspondência. O && do shell executa a mensagem apenas quando essa comparação é bem-sucedida:
cmp documents/revenue.csv retrieved-revenue.csv && echo 'Report content matches'
Report content matches
Isso comprova que a recuperação preservou os bytes do relatório. Seu arquivo local contém o conteúdo; use head-object quando precisar inspecionar as propriedades armazenadas no S3.
Remova apenas o prefixo de finanças
Nesta etapa, você removerá os documentos de finanças preservando o documento de RH.
Um bucket compartilhado pode conter trabalho não relacionado. Excluir o bucket inteiro ou usar sua raiz como destino de exclusão recursiva afetaria ambos os departamentos. Escolha o prefixo específico finance/. A barra final faz parte do prefixo e mantém nomes como finance-archive.csv fora desse escopo.
aws s3 rm remove objetos. --recursive aplica a operação a todas as chaves correspondentes, e --dryrun lista as operações pretendidas sem realizá-las. Primeiro, visualize o escopo exato:
aws s3 rm s3://labex-team-documents/finance/ --recursive --dryrun
A saída de teste indica apenas finance/2026-09/revenue.csv. Ela não deve indicar hr/welcome.txt. Os objetos ainda existem neste momento.
Remova --dryrun para realizar a operação revisada:
aws s3 rm s3://labex-team-documents/finance/ --recursive
A saída confirma a exclusão da chave de finanças. Consulte o bucket novamente:
aws s3 ls s3://labex-team-documents/ --recursive
Resta apenas hr/welcome.txt. No AWS View, expanda esse objeto restante: sua mensagem de boas-vindas e os metadados department=hr estão inalterados. Uma listagem e leitura bem-sucedidas confirmam que você removeu o escopo pretendido preservando o documento de outro departamento.
Limpe os recursos restantes do laboratório
Nesta etapa, você removerá o documento restante que pertence ao laboratório e o bucket vazio.
O objeto de RH foi protegido durante a operação de finanças. Os recursos dos dois departamentos pertencem a este exercício, portanto agora você pode remover o objeto restante pela chave exata, sem usar um destino recursivo amplo:
aws s3 rm s3://labex-team-documents/hr/welcome.txt
A saída confirma a exclusão da chave de RH. Confira o conteúdo do bucket antes de remover seu contêiner:
aws s3 ls s3://labex-team-documents/ --recursive
O comando bem-sucedido não exibe linhas de objetos. Um bucket precisa estar vazio antes que rb (remover bucket) possa removê-lo:
aws s3 rb s3://labex-team-documents
A saída é remove_bucket: labex-team-documents. Confirme que o armazenamento ainda responde:
aws s3 ls
Não há linhas de buckets neste espaço de trabalho novo. AWS View mostra No buckets; uma mensagem Unavailable significaria que a página não consegue determinar o estado. Seus documentos locais de origem e baixados continuam disponíveis para revisão.
Resumo
Você organizou os documentos de dois departamentos com chaves completas de objetos e prefixos, atribuiu metadados padrão e personalizados, inspecionou propriedades pela API do S3 e comparou os bytes baixados com sua origem. Também visualizou uma exclusão delimitada por prefixo, preservou um documento não relacionado e limpou os recursos restantes que pertenciam ao laboratório.
Use prefixos para agrupamentos previsíveis baseados em nomes e metadados para descrever objetos. Escolha deliberadamente os escopos de exclusão e verifique os recursos que devem permanecer.



