Vai al contenuto principale

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
nota

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.
  • 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!

Visualizzazione della preview di una regola di lifecycle all&#39;interno della DS3 Console