Almacena y recupera archivos en S3

AWSBeginner
Practicar Ahora

Introducción

Un equipo de informes necesita almacenar un informe diario de ventas y recuperar la copia actual. Crearás un bucket de S3, subirás y actualizarás el informe, comprobarás una descarga y eliminarás tus recursos de práctica.

Completa primero Primeros pasos con AWS en LabEx. La conexión de la CLI y report.txt están preparados en esta VM nueva; no se necesita iniciar sesión personalmente en AWS ni recursos anteriores. Utiliza Terminal para los comandos y la pestaña AWS View, a su lado, para observar el almacenamiento de este laboratorio.

Relación con las certificaciones

Este laboratorio ofrece práctica para los siguientes temas de examen.

Crea tu bucket de almacenamiento

En este paso, crearás un bucket para un informe diario de ventas y lo observarás en AWS View.

Ve al espacio de trabajo. cd cambia el directorio actual de la terminal; todos los archivos locales de este laboratorio utilizan este directorio.

cd /home/labex/project

Confirma la versión de la CLI oficial preparada:

aws --version

La salida comienza por aws-cli/2.37.6. La imagen ya proporciona las herramientas para que puedas centrarte en las operaciones de almacenamiento.

Amazon S3 almacena el contenido de los archivos como objetos. Un bucket contiene esos objetos y una clave identifica un objeto dentro de él. Primero crearás el contenedor y después subirás el informe.

Crea labex-backups. En aws s3 mb, s3 selecciona el almacenamiento de objetos y mb significa crear un bucket. El prefijo s3:// identifica una ubicación de almacenamiento, no una carpeta local.

aws s3 mb s3://labex-backups

Salida esperada:

make_bucket: labex-backups

Enumera los buckets con ls, que significa listar:

aws s3 ls

Deberías ver una línea que termina en labex-backups; su fecha y hora varían. En la vista previa de AWS View aparece una tarjeta labex-backups sin objetos. Las flechas muestran cómo se conecta la CLI al almacenamiento; el nodo del bucket refleja una consulta real del recurso.

Sube e inspecciona el informe

En este paso, almacenarás un informe como objeto de S3 y leerás su contenido realmente almacenado mediante la vista previa.

El archivo local y su copia almacenada son independientes; la subida y la descarga los conectan.

Copias local y almacenada

Inspecciona el archivo local preparado. cat muestra el contenido de un archivo de texto:

cat report.txt

Salida esperada:

Daily sales: 120 orders

cp significa copiar. La primera ruta siguiente es el origen local y la segunda es el destino. La parte después del nombre del bucket, report.txt, es la clave del objeto.

aws s3 cp report.txt s3://labex-backups/report.txt

La salida informa de una subida desde report.txt a s3://labex-backups/report.txt.

Enumera los objetos del bucket:

aws s3 ls s3://labex-backups/

La línea de report.txt muestra su hora de modificación, tamaño y clave. Una subida crea una copia almacenada independiente: editar solo el archivo local no la cambiaría.

En AWS View, la tarjeta del bucket muestra 1 objeto. Haz clic en report.txt en la tarjeta para desplegar su contenido. La vista previa debería mostrar Daily sales: 120 orders. Esto lee el objeto almacenado, no el archivo local de origen.

El ejemplo siguiente muestra el informe subido desplegado en la tarjeta de su bucket. El contenido se lee del almacenamiento.

Informe almacenado y topología de S3

Actualiza y recupera la copia almacenada

En este paso, reemplazarás el informe, descargarás la versión almacenada actual y demostrarás que el contenido se ha conservado durante la transferencia de ida y vuelta.

El informe actualizado contiene 145 pedidos. printf escribe texto; \n añade un salto de línea. El operador > del shell reemplaza el contenido del archivo local indicado.

printf 'Daily sales: 145 orders\n' > report.txt

Observa la vista previa del informe antes de volver a subirlo. Sigue mostrando 120 orders porque la copia almacenada no ha cambiado.

Sube a la misma clave para reemplazar su contenido actual:

aws s3 cp report.txt s3://labex-backups/report.txt

La vista previa ahora muestra 145 orders, mientras que el número de objetos sigue siendo 1. Reutilizar una clave actualiza ese objeto; no crea un segundo objeto con nombre en este laboratorio.

Descarga invirtiendo la dirección de cp: la ruta de S3 ahora es el origen y downloaded.txt es un nuevo destino local.

aws s3 cp s3://labex-backups/report.txt downloaded.txt

Inspecciona el archivo descargado:

cat downloaded.txt

Salida esperada:

Daily sales: 145 orders

cmp compara dos archivos byte a byte. No muestra nada y termina correctamente cuando son idénticos. && ejecuta el comando siguiente solo si esa comparación tiene éxito.

cmp report.txt downloaded.txt && echo 'Round trip verified'

Salida esperada:

Round trip verified

Esta comparación demuestra que el contenido recuperado coincide con tu origen actualizado. El verificador del paso lee S3 de forma independiente y compara los contenidos almacenado y descargado.

Limpia tu almacenamiento

En este paso, aprenderás por qué no se puede eliminar un bucket que no está vacío y después eliminarás los objetos y el bucket de este laboratorio.

rb significa eliminar un bucket. Primero intenta eliminarlo mientras el informe todavía existe:

aws s3 rb s3://labex-backups

Se espera que este comando falle con BucketNotEmpty. El fallo enseña una dependencia entre recursos: un bucket contiene objetos, así que elimina esos objetos antes de eliminar su contenedor. El bucket y el objeto deberían seguir visibles en la vista previa.

rm elimina un objeto en la ruta exacta de S3:

aws s3 rm s3://labex-backups/report.txt

La salida confirma delete: s3://labex-backups/report.txt. El objeto desaparece de la vista previa; el bucket permanece vacío.

Ahora elimina el bucket vacío:

aws s3 rb s3://labex-backups

Salida esperada:

remove_bucket: labex-backups

Confirma que el servicio sigue respondiendo y no enumera ningún bucket restante:

aws s3 ls

El comando termina sin filas de buckets. AWS View muestra No buckets sin tarjetas de recursos. Ese estado procede de una consulta correcta al servicio; una página desconectada no demostraría la limpieza. Tus archivos de informes locales siguen disponibles, mientras que los recursos de almacenamiento se han eliminado.

La vista de limpieza siguiente muestra que no quedan tarjetas de buckets después de una consulta correcta del estado.

Almacenamiento vacío después de la limpieza

Resumen

Utilizaste AWS CLI oficial para crear un bucket, subir y reemplazar un objeto, descargarlo, comparar el contenido de los archivos y eliminar los recursos de almacenamiento. AWS View relacionó tus comandos con cambios observables de los recursos y la vista previa mostró el contenido realmente almacenado.

Practicaste un flujo completo de almacenamiento de informes: organizar archivos en un bucket, distinguir las copias local y almacenada, verificar una descarga y eliminar los objetos antes de eliminar su bucket.