Introdução
Depois de armazenar um arquivo, seu nome e suas propriedades ajudam a equipe a encontrar o documento certo. Organize documentos financeiros e de RH em um bucket, inspecione o relatório financeiro e exclua apenas seu prefixo, preservando o RH.
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 AWS View na parte superior para comparar chaves, propriedades e conteúdos armazenados.
Relação com as certificações
| Certificação | Tarefa do exame | Prática |
|---|---|---|
| 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. |
Visão geral do laboratório

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.

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.

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.
Resumo
Você organizou objetos com chaves, prefixos, tipos de conteúdo e metadados personalizados, depois verificou o relatório recuperado byte a byte. O dry run ajudou a revisar a exclusão restrita às finanças; a consulta final e o AWS View confirmaram que o documento de RH e suas propriedades permaneceram intactos.
Para aprofundar o tema, consulte a documentação da AWS: Chaves e prefixos de objetos S3; Metadados de objetos S3.



