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.
La regola Expiration
La regola Expiration è usata per eliminare oggetti dopo uno specifico ammontare di tempo. Quando un oggetto raggiunge la fine del suo ciclo di vita, il sistema agisce in base allo stato di versionamento del bucket:
- bucket non versionato - l'oggetto viene permanentemente eliminato
- bucket versionato - se l'oggetto corrente non è un delete marker, il sistema aggiunge un delete marker sopra di esso; questo rende la versione corrente come non corrente, e il delete marker diventa invece corrente
- bucket con versionamento sospeso - il sistema crea un delete marker con un version id del valore di null sulla pila di versioni dell'oggetto, rendendolo eliminato a tutti gli effetti
Expiration: data
Utilizzando la regola di Expiration
con l'attributo Date
, è necessario fornire una data impostata a mezzanotte UTC.
Poiché i filtri non sono attualmente supportati, una data di scadenza significa che tutti gli oggetti nel bucket devono scadere dopo la data fornita.
Expiration: giorni
Impostando l'attributo Expiration
con il parametro Days
, tutti gli oggetti nel bucket scadranno dopo un certo numero di giorni dalla loro creazione.
Gli "expired object delete markers"
Quando un oggetto ha un singolo delete marker per rappresentarlo e 0 versioni non-correnti (come nel caso in cui una regola di NoncurrentVersionExpiration
ha eliminato tutte le versioni non-correnti), esso viene chiamato expired object delete marker.
Quando un bucket versionato ha delle regole di Expiration applicate, tutti gli expired object delete markers vengono automaticamente eliminati.
Il campo ExpiredObjectDeleteMarker
È inoltre possibile eliminare solo gli expired object delete markers in automatico senza impostare una regola di Expiration, definendo una nuova regola con solo un ExpiredObjectDeleteMarker
, come ad esempio:
"Expiration": {
"ExpiredObjectDeleteMarker": true
}
Le regole di Expiration
contenenti Date
/Days
insieme a ExpiredObjectDeleteMarker
non sono permesse.
Controllare la data di scadenza di un oggetto
Impostando una regola di Expiration su un bucket, le APIs HeadObject
e GetObject
restituiscono un header nominato Expiration
con questo formato:
Expiration: expiry-date="Tue, 19 Nov 2024 00:00:00 GMT", rule-id="<id della regola di lifecycle>"
Esempio
Crea un file contenente la seguente lifecycle configuration, chiamata 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.
Il campo ID è opzionale e -nel caso non venga impostato- ne verrà generato uno casualmente.
Funzioni non supportate
Al momento solo una regola per bucket è supportata. Ecco una lista di funzioni non supportate:
AbortIncompleteMultipartUpload
Filter
NoncurrentVersionTransition
Prefix
Transition
Interfaccia delle Politiche di Lifecycle dei Bucket
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!