Simple Enough Blog logo
  • Home 
  • Blog 
    • Technologies et Services 
    • Guide d'apprentissage 
    • Solutions et Tutoriels 
  • Projets 
  • Tags 

  •  Langage
    • English
    • Français
  1.   Blogs
  1. Accueil
  2. Blogs
  3. Comment filtrer les événements S3 par taille d'objet ?

Comment filtrer les événements S3 par taille d'objet ?

Posté le 8 mars 2025 • 5 min de lecture • 1 056 mots
Aws   Débuter   Helene  
Aws   Débuter   Helene  
Partager via
Simple Enough Blog
Lien copié dans le presse-papier

Gestion du stockage ou optimisation des coûts, on vous explique comment filtrer les événements S3 par taille d’objet.

Sur cette page
I. Quand a-t-on besoin de filtrer les événements S3 par taille d’objet ?   1. Optimisation des Coûts et Gestion du Stockage   2. Automatisation des Traitements   3. Sécurité et Conformité   4. Optimisation des Flux de Données   5. Monitoring et Reporting   II. Comment filtrer les événements S3 par taille d’objet, 3 méthodes ?   1. Filtrage côté AWS EventBridge avec AWS Lambda   Étapes :   Exemple de code Lambda (Python) :   2. Utiliser AWS S3 Inventory avec Athena   Exemple de requête SQL avec Athena :   3. Utiliser Amazon S3 Batch Operations   Exemple d’utilisation : Déplacement des fichiers volumineux vers Glacier   1️⃣ Générer une liste des fichiers existants   2️⃣ Filtrer les fichiers par taille   3️⃣ Créer une tâche S3 Batch Operations   4️⃣ Lancer la tâche et suivre son exécution   III. Comparatif des méthodes AWS S3   Conclusion  
Comment filtrer les événements S3 par taille d'objet ?
Photo par Helene Hemmerter

I. Quand a-t-on besoin de filtrer les événements S3 par taille d’objet ?  

Filtrer les événements S3 par taille d’objet est utile dans plusieurs cas d’usage, en particulier lorsque les actions à déclencher dépendent du volume des fichiers stockés. Voici quelques scénarios concrets où ce filtrage est pertinent :

1. Optimisation des Coûts et Gestion du Stockage  

  • Suppression automatique des fichiers trop volumineux : éviter l’accumulation de fichiers inutiles qui consomment de l’espace et génèrent des coûts inutiles.
  • Déplacement automatique vers un stockage à moindre coût (ex: Glacier) lorsque les fichiers dépassent une certaine taille.

2. Automatisation des Traitements  

  • Exécuter un traitement spécifique sur les fichiers volumineux (ex: conversion vidéo/audio, compression, division en morceaux plus petits).
  • Lancer une fonction Lambda pour indexer uniquement les fichiers pertinents en fonction de leur taille.

3. Sécurité et Conformité  

  • Éviter le stockage de fichiers trop lourds dans des buckets publics qui pourraient engendrer des abus (ex: upload d’archives volumineuses par des utilisateurs malveillants).
  • Déclencher une alerte ou bloquer certains uploads si un utilisateur dépasse une limite de taille définie.

4. Optimisation des Flux de Données  

  • Diriger les petits fichiers vers un traitement en temps réel (Lambda, Kinesis) et les fichiers volumineux vers un traitement batch pour optimiser l’efficacité du système.
  • Rediriger les fichiers selon leur taille vers différents buckets (ex: fichiers < 1 Mo vers un bucket pour accès rapide, fichiers > 100 Mo vers un stockage froid).

5. Monitoring et Reporting  

  • Générer des rapports sur l’utilisation de l’espace de stockage en filtrant les objets dépassant une taille critique.
  • Détecter des anomalies comme l’upload soudain de fichiers très volumineux qui pourraient signaler un problème (ex: erreurs de logs massives, fuite de données, etc.).

II. Comment filtrer les événements S3 par taille d’objet, 3 méthodes ?  

1. Filtrage côté AWS EventBridge avec AWS Lambda  

AWS S3 envoie des événements à EventBridge ou à une AWS Lambda. Malheureusement, les règles EventBridge ne permettent pas directement de filtrer par taille d’objet. Cependant, vous pouvez configurer une AWS Lambda pour traiter les événements et appliquer un filtrage basé sur la taille.

Étapes :  

  1. Créer une règle EventBridge qui capture les événements S3 s3:ObjectCreated:* et envoie les données à une AWS Lambda.
  2. Dans la Lambda, extraire la taille de l’objet à partir de event['Records'][0]['s3']['object']['size'].
  3. Appliquer un filtre conditionnel pour traiter seulement les fichiers dépassant une certaine taille.

Exemple de code Lambda (Python) :  

import json

def lambda_handler(event, context):
    for record in event['Records']:
        bucket_name = record['s3']['bucket']['name']
        object_key = record['s3']['object']['key']
        object_size = record['s3']['object']['size']  # Taille en octets

        if object_size > 10_000_000:  # Exemple : 10 MB
            print(f"Fichier {object_key} dans {bucket_name} dépasse 10MB. Taille: {object_size} octets")
            # Effectuer une action spécifique (ex: stocker l’info, envoyer une alerte, etc.)

    return {
        'statusCode': 200,
        'body': json.dumps('Filtrage terminé')
    }

Vous pouvez ensuite configurer une destination pour stocker ces événements filtrés.


2. Utiliser AWS S3 Inventory avec Athena  

Si vous ne souhaitez pas traiter les événements en direct mais plutôt effectuer des analyses périodiques :

  1. Activer S3 Inventory (un rapport journalier ou hebdomadaire des objets d’un bucket).
  2. Utiliser AWS Athena pour interroger ces fichiers CSV/Parquet et filtrer par taille.

Exemple de requête SQL avec Athena :  

SELECT key, size
FROM s3_inventory_table
WHERE size > 10000000;  -- Filtre pour les objets de plus de 10MB

3. Utiliser Amazon S3 Batch Operations  

Si l’objectif est de supprimer ou déplacer automatiquement des fichiers trop volumineux, vous pouvez :

  1. Activer S3 Inventory.
  2. Créer un job S3 Batch Operations qui applique un filtrage basé sur la taille avant d’exécuter une action (ex: déplacer les fichiers vers un autre bucket ou les supprimer).

Exemple d’utilisation : Déplacement des fichiers volumineux vers Glacier  

Imaginons que vous vouliez déplacer tous les fichiers de plus de 100 Mo vers un bucket Glacier.

1️⃣ Générer une liste des fichiers existants  

  • Activez S3 Inventory pour générer un fichier CSV contenant la liste de tous les objets et leurs tailles.

2️⃣ Filtrer les fichiers par taille  

  • Téléchargez le fichier CSV d’Inventory et filtrez uniquement les objets dont la taille est > 100 Mo.

3️⃣ Créer une tâche S3 Batch Operations  

Dans la console AWS S3 → Batch Operations :

  • Sélectionnez Créer une tâche.
  • Fournissez le fichier CSV filtré.
  • Choisissez l’action Copier les objets.
  • Configurez la destination : un bucket configuré avec une politique de cycle de vie pour envoyer les fichiers vers Glacier.

4️⃣ Lancer la tâche et suivre son exécution  

  • S3 Batch Operations traite automatiquement tous les objets listés.
  • AWS fournit un rapport détaillé sur les objets traités.

III. Comparatif des méthodes AWS S3  

Critères AWS Lambda + EventBridge S3 Inventory + Athena S3 Batch Operations
Réactivité Temps réel Différé (périodique, selon la fréquence de l’inventaire) Semi-automatique (nécessite création de tâche manuelle)
Complexité Moyenne (nécessite un script Lambda) Faible (simple requête SQL) Moyenne (nécessite un fichier Inventory ou une liste d’objets)
Coût Peut être élevé (si déclenché fréquemment) Faible (coût de stockage + requêtes Athena) Moyen (facturation par action exécutée)
Scalabilité Élevée (gère des événements en continu) Très élevée (analyse de millions d’objets possible) Élevée (traitement de millions d’objets)
Cas d’usage principal Déclencher une action immédiate sur des objets spécifiques Analyse et reporting sur un grand nombre d’objets Actions en masse (copie, suppression, modification de métadonnées)
Capacité de filtrage avancé Oui (via du code Python) Oui (via requêtes SQL avancées) Limité (basé sur la liste fournie)
Facilité de mise en place Relativement simple (nécessite configuration EventBridge + Lambda) Facile (nécessite activer Inventory + écrire SQL) Moyenne (configuration simple mais nécessite un fichier Inventory)

Conclusion  

Le filtrage des événements S3 par taille d’objet est essentiel pour optimiser les coûts, automatiser le traitement des fichiers volumineux, renforcer la sécurité et améliorer le monitoring. En fonction du besoin, plusieurs solutions existent : AWS Lambda avec EventBridge, S3 Inventory avec Athena, ou S3 Batch Operations. Chaque approche offre un niveau de flexibilité et de performance adapté à différents cas d’usage.

Si votre objectif est de réagir en temps réel, l’utilisation d’AWS Lambda avec EventBridge est recommandée. Si vous préférez une approche plus analytique et périodique, Athena avec S3 Inventory est une solution robuste. Enfin, pour les actions automatisées sur les objets existants, S3 Batch Operations permet de traiter les fichiers en masse.

En appliquant ces méthodes, vous pourrez mieux gérer vos ressources AWS et optimiser votre infrastructure S3.

 Les 5 livres blancs incontournables
Qu’ est-ce qu’ un Bundle ? Décryptage du concept 
  • I. Quand a-t-on besoin de filtrer les événements S3 par taille d’objet ?  
  • II. Comment filtrer les événements S3 par taille d’objet, 3 méthodes ?  
  • III. Comparatif des méthodes AWS S3  
  • Conclusion  
Suivez-nous

Nous travaillons avec vous !

   
Copyright © 2025 Simple Enough Blog Tous droits réservés. | Propulsé par Hinode.
Simple Enough Blog
Code copié dans le presse-papier