Introduction
Activez les versions S3, publiez un mauvais brouillon, récupérez les octets antérieurs et nettoyez vos versions.
Terminez les laboratoires précédents du portfolio. Cet environnement fournit ses propres ressources et les capacités antérieures nécessaires. Réutilisez les connaissances, pas les instances, fichiers ou identifiants précédents.
Lien avec la certification
| Certification | Tâches | Pratique |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 3.6 | Préserver et récupérer du contenu grâce au versionnement S3. |
Vue d’ensemble

Conserver une bonne version
Dans cette étape, vous activerez le versionnement et garderez un VersionId. Ouvrez l’image AURA. Une lecture normale renvoie la version actuelle ; VersionId choisit une version précise. Confirmez la couverture AURA avec les produits de soin. Les quatre versions initiales sont null ; seules de nouvelles versions de images/aura-brand.webp seront créées.
Entrez dans le projet.
cd /home/labex/project
Chargez et affichez le bucket.
source website.env
echo "$PORTFOLIO_BUCKET"
Activez Status=Enabled.
aws s3api put-bucket-versioning --bucket "$PORTFOLIO_BUCKET" --versioning-configuration Status=Enabled
Relisez Enabled. L’objet préparé garde sa version null ; activer ne lui attribue pas rétroactivement un nouvel ID.
aws s3api get-bucket-versioning --bucket "$PORTFOLIO_BUCKET"
put-object envoie le fichier de body ; sauvegardez et affichez ORIGINAL_VERSION. Un antislash en fin de ligne continue la même commande à la ligne suivante.
ORIGINAL_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body portfolio-assets/images/aura-brand.webp --content-type image/webp \
--query VersionId --output text)
echo "$ORIGINAL_VERSION"
Confirmez la couverture AURA avec les produits de soin. Les quatre versions initiales sont null ; seules de nouvelles versions de images/aura-brand.webp seront créées.
Observer une mise à jour incorrecte
Dans cette étape, vous publierez le brouillon volontairement faux sur la même Key.
Envoyez aura-draft.webp et gardez DRAFT_VERSION.
DRAFT_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body aura-draft.webp --content-type image/webp \
--query VersionId --output text)
echo "$DRAFT_VERSION"
aura-draft.webp contient l’image du disque ECHO. Après publication sur la Key AURA, rechargez : AURA affiche le disque au lieu des produits de soin. FORMA et ECHO conservent leurs images. La version correcte reste dans S3. La liste contient les versions du bucket. Regardez les lignes dont la Key est images/aura-brand.webp ; les trois autres Keys conservent null.
aws s3api list-object-versions --bucket "$PORTFOLIO_BUCKET"
aura-draft.webp contient l’image du disque ECHO. Après publication sur la Key AURA, rechargez : AURA affiche le disque au lieu des produits de soin. FORMA et ECHO conservent leurs images. La version correcte reste dans S3.

Récupérer l’ancienne image
Dans cette étape, vous téléchargerez les bons octets et les publierez comme nouvelle version actuelle.
get-object avec version-id sélectionne ORIGINAL_VERSION et le dernier nom indique le fichier local.
aws s3api get-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$ORIGINAL_VERSION" recovered-aura.webp
Comparez avec cmp ; aucune sortie signifie octets identiques.
cmp portfolio-assets/images/aura-brand.webp recovered-aura.webp
Publiez le fichier récupéré et gardez RESTORED_VERSION.
RESTORED_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body recovered-aura.webp --content-type image/webp \
--query VersionId --output text)
echo "$RESTORED_VERSION"
Rechargez : les produits de soin reviennent dans AURA. Le téléchargement seul ne modifie pas la version actuelle ; publier les octets récupérés crée RESTORED_VERSION. FORMA, ECHO et projects.json restent intacts.

Nettoyer les versions créées
Dans cette étape, vous supprimerez trois versions exactes en conservant null. Supprimer sans ID peut ajouter un delete marker plutôt qu’effacer l’historique.
Supprimez RESTORED_VERSION uniquement.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$RESTORED_VERSION"
Supprimez DRAFT_VERSION uniquement.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$DRAFT_VERSION"
Supprimez ORIGINAL_VERSION créé dans la première étape.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$ORIGINAL_VERSION"
Confirmez que seul null reste. La liste contient les versions du bucket. Regardez les lignes dont la Key est images/aura-brand.webp ; les trois autres Keys conservent null.
aws s3api list-object-versions --bucket "$PORTFOLIO_BUCKET"
Terminez le serveur temporaire.
aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"
Attendez son état final.
aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"
Préservez bucket, original null et référence. Le versionnement reste activé. La suite démarre avec d’autres ressources.
Résumé
Vous avez restauré l’image depuis une version conservée et supprimé uniquement les versions de l’exercice.
Références officielles : S3 Versioning, retrieving object versions.



