Gestire la conservazione dei dati nello storage S3
Eliminazione automatica degli oggetti con le regole del ciclo di vita in S3.
Lo storage S3 è un sistema di archiviazione dati distribuito in cui ogni file viene conservato in un contenitore specializzato chiamato bucket. L'accesso ai dati avviene tramite la S3 API, garantendo la piena compatibilità con gli strumenti AWS e gli altri servizi standard del settore.
Un lifecycle in S3 è un meccanismo «configura e dimentica» che automatizza le azioni sugli oggetti nel tempo. Il caso d'uso più comune è l'eliminazione automatica dei file dopo un determinato numero di giorni o a una data prestabilita. Questo aiuta a ottimizzare lo spazio di archiviazione eliminando automaticamente dati temporanei, log e backup obsoleti.
Funzionalità supportate
- Expiration — rimuove gli oggetti dopo un numero definito di giorni dall'upload o a una data di calendario specifica.
- Prefix — limita l'ambito della regola a un percorso specifico (ad es., solo la cartella
logs/). - Vincoli:
- Valore minimo — 1 giorno.
- Orario di esecuzione — le eliminazioni vengono elaborate alle
00:00 UTC.
Eliminare tutti gli oggetti dopo 30 giorni
Per configurare una pulizia automatica del tuo bucket, segui questi passaggi:
Passaggio 1. Creazione del file di configurazione
Crea un file locale chiamato lifecycle.json con la seguente configurazione:
{
"Rules": [
{
"ID": "DeleteAfter 30Days",
"Prefix": "",
"Status": "Enabled",
"Expiration": {
"Days": 30
}
}
]
}
Passaggio 2. Applicazione della configurazione al bucket
Usa l'utility AWS CLI per caricare le impostazioni nel tuo storage eseguendo il comando aws s3api put-bucket-lifecycle-configuration:
aws s3api put-bucket-lifecycle-configuration \
--bucket your-bucket-name \
--lifecycle-configuration file://lifecycle.json
Passaggio 3. Verifica delle regole attive
Per confermare che la configurazione sia stata applicata correttamente, esegui il comando aws s3api get-bucket-lifecycle-configuration:
aws s3api get-bucket-lifecycle-configuration \
--bucket your-bucket-name
Suggerimento
Se hai bisogno di disabilitare completamente l'eliminazione automatica, esegui semplicemente il comando aws s3api delete-bucket-lifecycle --bucket your-bucket-name.
Eliminare i file in una cartella specifica
Se vuoi eliminare solo una directory specifica — come logs/ — definisci il parametro Prefix.
{
"Rules": [
{
"ID": "DeleteLogsAfter7Days",
"Prefix": "logs/",
"Status": "Enabled",
"Expiration": {
"Days": 7
}
}
]
}
Una volta applicata, questa regola riguarderà solo gli oggetti presenti nel percorso logs/....
Eliminare i file a una data specifica
Per impostare una scadenza precisa per la conservazione dei dati, usa il parametro Date.
{
"Rules": [
{
"ID": "DeleteAtMidnight",
"Prefix": "",
"Status": "Enabled",
"Expiration": {
"Date": "2026-12-01T00:00:00Z"
}
}
]
}
Importante
Il timestamp deve rispettare il formato ISO 8601 (ad es., 2026-12-01T00:00:00Z). Tieni presente che ore, minuti e secondi devono essere impostati rigorosamente su 00:00:00.
Note per una gestione efficiente
Per assicurarti che le tue regole di lifecycle funzionino come previsto, tieni a mente queste sfumature tecniche:
-
Ritardo di esecuzione: le regole di lifecycle vengono in genere valutate una volta al giorno alle
00:00 UTC. Tuttavia, la rimozione fisica dei dati può richiedere fino a 24 ore dopo la scadenza del periodo di conservazione. -
Verifica dello stato di scadenza: puoi vedere esattamente quando un oggetto è programmato per l'eliminazione controllando i suoi metadati. Esegui il comando
head-objecte cerca l'headerx-amz-expirationnella risposta. -
Cartelle virtuali: S3 è un sistema di archiviazione flat. Le «cartelle» sono semplicemente prefissi nei nomi dei file. Se una regola elimina tutti gli oggetti con un prefisso specifico, la «cartella» scomparirà di fatto dall'elenco nella console.
Nota sul versioning
Se il versioning è abilitato sul tuo bucket, le regole Expiration standard creeranno solo dei «Delete Markers». Per eliminare le versioni precedenti dei tuoi file, devi configurare regole NoncurrentVersionExpiration aggiuntive.
Consiglio avanzato
Prima di applicare una regola globale (con "Prefix": "" vuoto) su dati di produzione, testala sempre su un bucket di test o una sottocartella specifica per evitare perdite accidentali di dati.
Aiuto
Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!