Introducción
Después de organizar objetos individuales, publica una colección que cambia. Sincroniza informes diarios, distingue la transferencia incremental de una réplica y elimina un informe obsoleto sin tocar el archivo separado.
Completa primero Organiza documentos con claves y metadatos, incluidos sus conceptos de bucket, clave, prefijo y descarga. Esta VM nueva proporciona la conexión de la CLI, los informes locales y un bucket que solo contiene el archivo. Utiliza Terminal para los comandos y AWS View en la parte superior, para observar tus cambios.
Relación con las certificaciones
| Certificación | Tarea del examen | Práctica |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Tarea 3.6 | Sincronización de directorios y eliminación delimitada en S3. |
| Solutions Architect – Associate (SAA-C03) | Tarea 3.1 | Sincronización de directorios y eliminación delimitada en S3. |
| Developer – Associate (DVA-C02) | Tarea 1.3 | Sincronización de directorios y eliminación delimitada en S3. |
Vista general del laboratorio

Publica el directorio de informes preparado
En este paso, publicarás dos informes locales en el prefijo daily/ y comprenderás cómo sus nombres de archivo se corresponden con claves de objetos.
Entra en el espacio de trabajo con cd (cambiar de directorio):
cd /home/labex/project
Inspecciona el directorio de informes preparado con ls, que enumera sus nombres de archivo locales:
ls reports
La lista contiene monday.csv y tuesday.csv. Ambos son archivos CSV: una cabecera indica las columnas y las comas separan los valores de cada registro. Inspecciona el informe del lunes con cat, que muestra el contenido de un archivo:
cat reports/monday.csv
date,orders
2026-09-28,120
Enumera el bucket preparado. Para una ubicación de S3, --recursive muestra las claves completas de todo el bucket:
aws s3 ls s3://labex-report-delivery/ --recursive
Solo está presente archive/retention.txt. El archivo pertenece a un flujo de trabajo independiente y debe conservarse durante tu sincronización diaria.
aws s3 sync recibe un origen y un destino, en ese orden. Considera recursivamente los archivos del directorio de origen; no necesitas --recursive para sync. Cada nombre de archivo relativo se convierte en una clave bajo el prefijo de destino. Por tanto, reports/monday.csv se convierte en daily/monday.csv, en lugar de daily/reports/monday.csv.
aws s3 sync reports/ s3://labex-report-delivery/daily/
El comando informa de subidas del lunes y del martes; su orden en la salida puede variar. Enumera de nuevo todo el bucket:
aws s3 ls s3://labex-report-delivery/ --recursive
Deberías encontrar tres claves: archive/retention.txt, daily/monday.csv y daily/tuesday.csv. AWS View muestra los mismos objetos. Haz clic en daily/monday.csv para leer el informe CSV almacenado de dos líneas. El archivo permanece fuera del destino daily/ que seleccionaste.
Sincroniza un cambio y un informe nuevo
En este paso, actualizarás un informe, añadirás otro y transferirás esos cambios sin volver a subir un informe que no ha cambiado.
Ejecutar sync con el mismo origen y destino es seguro cuando ninguno de los dos ha cambiado:
aws s3 sync reports/ s3://labex-report-delivery/daily/
No hay líneas de subida cuando los archivos existentes ya están actualizados. En las transferencias de local a S3, la CLI considera si falta la clave de destino, si los tamaños difieren o si el archivo local tiene una hora de modificación más reciente. No vigila continuamente el directorio: ejecutas sync cuando quieres publicar cambios.
Añade un lote tardío de 25 pedidos al informe del lunes. printf muestra el texto entre comillas; \n termina la línea. El operador >> del shell añade contenido a un archivo local en lugar de reemplazarlo:
printf '2026-09-28,25\n' >> reports/monday.csv
Inspecciona el resultado de tres líneas:
cat reports/monday.csv
date,orders
2026-09-28,120
2026-09-28,25
Crea el informe del miércoles. Aquí > escribe un archivo nuevo, reemplazando cualquier contenido existente en esa ruta:
printf 'date,orders\n2026-09-30,150\n' > reports/wednesday.csv
Antes de publicar, el informe almacenado del lunes sigue teniendo dos líneas y el del miércoles no aparece en AWS View. Editar solo los archivos locales no cambia S3.
Publica de nuevo:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Deberías ver subidas del informe del lunes modificado y del nuevo informe del miércoles. El martes no ha cambiado, así que no se sube. Esta es una transferencia incremental: copia los cambios en lugar de copiar indiscriminadamente todos los archivos.
En AWS View, el lunes ahora muestra el lote tardío y aparece el miércoles. Descarga el lunes a una ruta local independiente para poder comparar el contenido realmente almacenado:
aws s3 cp s3://labex-report-delivery/daily/monday.csv retrieved-monday.csv
cmp compara archivos byte a byte. Termina correctamente sin mostrar diferencias cuando los contenidos coinciden. && muestra el mensaje solo después de esa comparación correcta:
cmp reports/monday.csv retrieved-monday.csv && echo 'Updated report matches'
Updated report matches
Esto confirma que la actualización llegó al almacenamiento; un mensaje de comando correcto por sí solo no indicaría qué bytes se almacenaron.

Crea un espejo únicamente del prefijo diario
En este paso, eliminarás un informe obsoleto del destino protegiendo el archivo ajeno a la tarea.
El destino de sync es daily/; archive/ permanece fuera de ese alcance.

El informe del martes ya no forma parte de la colección diaria publicada. Elimina solo ese archivo local con rm (eliminar). Este es un comando del sistema de archivos local, así que no elimina un objeto de S3:
rm reports/tuesday.csv
Ejecuta de nuevo sync normal:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Enumera el prefijo de destino:
aws s3 ls s3://labex-report-delivery/daily/ --recursive
El martes sigue apareciendo. De forma predeterminada, sync copia los archivos que faltan o se han actualizado, pero conserva los objetos adicionales en el destino. Eliminar solo un archivo de origen no elimina su copia almacenada.
Un espejo mantiene el conjunto de archivos del destino alineado con el origen, incluidas las eliminaciones. --delete elimina las claves de destino que no tienen un archivo de origen correspondiente. Primero combínalo con --dryrun, que muestra las operaciones previstas sin realizarlas:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete --dryrun
La simulación debería enumerar únicamente la eliminación de daily/tuesday.csv. El lunes y el miércoles coinciden con el origen, y archive/retention.txt está fuera de daily/. Mantén exacto el prefijo de destino: utilizar la raíz del bucket incluiría el archivo en el alcance.
Después de comprobar la eliminación prevista, ejecuta la misma operación sin --dryrun:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete
El comando informa de la eliminación del martes. Inspecciona todo el bucket para comprobar tanto lo que desapareció como lo que se conservó:
aws s3 ls s3://labex-report-delivery/ --recursive
Las claves restantes son daily/monday.csv, daily/wednesday.csv y archive/retention.txt. En AWS View, abre el objeto del archivo y confirma que sigue mostrando Keep the archive outside daily synchronization. Tu operación de espejo solo afectó al prefijo elegido.
Resumen
Publicaste un directorio cambiante con sync, verificaste la actualización almacenada y revisaste el espejo antes de usar --delete. La colección final daily/ contiene lunes y miércoles; el archivo separado sigue intacto. Elige la dirección de transferencia y el alcance del destino antes de publicar.
Para ampliar este tema, consulta la referencia de AWS: Selección de transferencias, simulación y alcance de eliminación en S3 sync.



