Comment filtrer les événements S3 par taille d'objet ?
Posté le 8 mars 2025 • 5 min de lecture • 1 056 motsGestion du stockage ou optimisation des coûts, on vous explique comment 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 :
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.
s3:ObjectCreated:* et envoie les données à une AWS Lambda.event['Records'][0]['s3']['object']['size'].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.
Si vous ne souhaitez pas traiter les événements en direct mais plutôt effectuer des analyses périodiques :
SELECT key, size
FROM s3_inventory_table
WHERE size > 10000000; -- Filtre pour les objets de plus de 10MBSi l’objectif est de supprimer ou déplacer automatiquement des fichiers trop volumineux, vous pouvez :
Imaginons que vous vouliez déplacer tous les fichiers de plus de 100 Mo vers un bucket Glacier.
Dans la console AWS S3 → Batch Operations :
| 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) |
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.