Lifecycle Configuration
Intro
La Lifecycle Configuration serve a configurare il ciclo di vita degli oggetti in modo che siano conservati in modo economico. Attualmente, solo NoncurrentVersionExpiration
è supportata nella gestione del Lifecycle Configuration.
Per impostare, recuperare ed eliminare la configurazione si possono utilizzare le seguenti API:
PutBucketLifecycleConfiguration
: utilizzata per impostare la configurazione, che sovrascriverà quella esistente, se presente.GetBucketLifecycleConfiguration
: serve a recuperare la configurazione del ciclo di vita attualmente configurata.DeleteBucketLifecycle
: serve a cancellare la configurazione del ciclo di vita attualmente configurata.
La regola NoncurrentVersionExpiration
La regola NoncurrentVersionExpiration è usata per eliminare le versioni dell'oggetto che superano il numero di versioni da mantenere, come definito dal parametro NewerNoncurrentVersions
, e che sono state noncurrent per più di NoncurrentDays
.
Ad esempio, se un oggetto ha solo due versioni noncurrent e la regola configurata ha un NewerNoncurrentVersions
di 2, queste due versioni non verranno eliminate. Tuttavia, se ci sono tre versioni noncurrent, la versione più vecchia verrà eliminata se è stata noncurrent per più di NoncurrentDays
.
I NoncurrentDays
di una versione (cioè il numero di giorni in cui una versione è stata noncurrent) vengono calcolati a partire dalla creazione della versione successiva e il numero di giorni in cui una versione è stata noncurrent viene arrotondato per difetto al numero intero più grande minore o uguale ai giorni effettivamente trascorsi.
Le regole di Scadenza
La regola di Scadenza è utilizzata per cancellare gli oggetti dopo un periodo di tempo prestabilito. Quando un oggetto raggiunge il termine del suo lifetime, il sistema esegue una expiration action a seconda dello stato in cui si trova il bucket:
- nonversioned buckets - l'oggetto viene cancellato definitivamente
- versioning-enabled bucket - se l'oggetto corrente non è un delete marker, il sistema aggiunge un delete marker sopra di esso; questo rende la versione corrente noncurrent, e il delete marker la versione corrente
- versioning-suspended bucket - il sistema crea un delete marker con un id di versione nullo in cima allo stack delle versione dell'oggetto, cancellando di fatto l'oggetto
Expiration date
Quando si utilizza una Scadenza
con una Data
devi fornire una data relativa alla mezzanotte UTC
Siccome i filtri non sono al momento supportati, una data di scadenza significa che ogni oggetto nel bucket scadrà dopo un certa data.
Giorni di scadenza
Settando il campo Scadenza
con il parametro Giorni
, tutti gli oggetti all'interno dei bucket scadranno dopo un certo numero di giorni dalla loro creazione.
The expired objects delete markers
Quando un oggetto è rappresentato solamente da un singolo delete marker (probabilmente perchè la regola NoncurrentVersionExpiration
ha cancellato tutte le versioni noncurrent), esso viene chiamato expired object delete marker.
Quando un bucket versionato ha una regola di scadenza applicata, tutti gli expired object delete markers verranno cancellati automaticamente a loro volta.
Campo ExpiredObjectDeleteMarker
È anche possibile cancellare solo object delete markers scaduti automaticamente senza settare una regola di scadenza, definendo una nuova regola con ExpiredObjectDeleteMarker
, ad esempio:
"Expiration": {
"ExpiredObjectDeleteMarker": true
}
Regole Expiration
contenenti sia Date
/Days
che ExpiredObjectDeleteMarker
non sono permesse.
Controllare la scadenza
Quando setti una regola di scadenza su un bucket, eseguendo una HeadObject
o una GetObject
su un object target, otterrai un Expiration
header in questo formato:
Expiration: expiry-date="Tue, 19 Nov 2024 00:00:00 GMT", rule-id="<id of the lifecycle rule>"
Esempio: come applicare una lifecycle configuration
Crea un file contenente le seguenti lifecycle configuration di esempio, chiama il file lifecycle.json
:
{
"Rules": [
{
"ID": "NoncurrentVersionExpiration Rule 1",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NewerNoncurrentVersions": 3,
"NoncurrentDays": 2
}
},
{
"ID": "Expiration Rule 1",
"Status": "Enabled",
"Expiration": {
"Days": 10
}
}
]
}
Nella stessa cartella, usa il seguente comando per impostare la configurazione del ciclo di vita del bucket:
aws s3api --endpoint https://s3.cubbit.eu put-bucket-lifecycle-configuration --lifecycle-configuration file://lifecycle.json --bucket my-cubbit-bucket
Se il comando ha successo, la lifecycle configuration è stata applicata correttamente. Per verificarla, è possibile chiamare il seguente comando:
aws s3api --endpoint https://s3.cubbit.eu get-bucket-lifecycle-configuration --bucket my-cubbit-bucket
Verifica sempre di aver sostituito "my-cubbit-bucket
" con un bucket esistente.
L'ID è opzionale, se non provvisto ne verrà generato uno casuale.
Funzioni non supportate
Al momento solo una regola per bucket è supportata. Ecco una lista di funzioni non supportate:
AbortIncompleteMultipartUpload
Filter
NoncurrentVersionTransition
Prefix
Transition
UI delle Bucket Lifecycle Policy
L'interfaccia delle Politiche di Lifecycle dei Bucket offre un modo semplice e intuitivo per gestire il ciclo di vita degli oggetti archiviati nei tuoi bucket. Attraverso questa interfaccia, puoi definire regole automatiche per la transizione o l'eliminazione degli oggetti in base a condizioni predefinite, aiutandoti a ottimizzare i costi di archiviazione e a mantenere la conformità ai requisiti di gestione dei dati.
Caratteristiche Principali
- Creazione Semplice delle Regole: imposta facilmente regole per spostare o eliminare oggetti in base alla loro età o ad altre condizioni.
- Panoramica Chiara delle Politiche: visualizza tutte le politiche di lifecycle esistenti in un unico posto, con dettagli sulle loro azioni e condizioni.
- Configurazione Flessibile: personalizza le politiche per adattarle alle tue esigenze di archiviazione, come l'archiviazione di dati meno recenti o l'eliminazione di file scaduti.
- Indicatori di Stato: controlla rapidamente quali politiche sono attive e applicate al tuo bucket.
Navigazione dell'Interfaccia
- Configurazione delle Regole di Lifecycle: definisci e visualizza i dettagli di una regola specifica, inclusi il nome della regola e l'ambito di applicazione.
- Revisione delle Azioni di Transizione ed Eliminazione: un riepilogo strutturato di come gli oggetti cambiano nel tempo.
- Azioni sulle Versioni Correnti: mostra cosa succede agli oggetti appena caricati. Ad esempio, un oggetto potrebbe scadere dopo un determinato periodo (es. 30 giorni).
- Azioni sulle Versioni Non Correnti: mostra come vengono gestite le versioni precedenti degli oggetti, come l'eliminazione dopo un periodo di conservazione (es. 1 giorno).
- Elenco delle regole: una tabella che mostra tutte le regole di lifecycle esistenti, inclusi i loro nomi, le azioni e lo stato.
- Pulsante Crea/Modifica Politica: una procedura guidata per definire nuove politiche di lifecycle o modificare quelle esistenti.
- Attivazione/Disattivazione delle Politiche: abilita o disabilita facilmente le politiche in base alle necessità.
L'interfaccia è progettata per essere intuitiva, consentendo sia agli utenti principianti che a quelli esperti di gestire facilmente il ciclo di vita dei propri dati. Esplora l'interfaccia e ottimizza oggi stesso la gestione dei tuoi dati!