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.

The Expiration rule

The Expiration rule is used to delete objects after a certain time. When an object reaches the end of its lifetime, the system takes an expiration action based on which versioning state the bucket is in:

  • nonversioned buckets - the object will be permanently removed
  • versioning-enabled bucket - if the current object is not a delete marker, the system adds a delete marker on top of it; this makes the current version noncurrent, and the delete marker the current version
  • versioning-suspended bucket - the system creates a delete marker with a null version id on top of the versions stack of the object, effectively deleting the object

Expiration date When using an Expiration with a Date you need to provide a date set to the midnight UTC. Since filters are not currently supported, an expiration date means that every object in the bucket needs to be expired at after a certain date.

Expiration days Setting the Expiration with a Days parameter, all the objects in the buckets will expire after a certain amount of days since their creation.

The expired objects delete markers When an object has a single delete marker to represent it (maybe because some NoncurrentVersionExpiration deleted all the noncurrent versions), it is called an expired object delete marker. When a versioned bucket has some expiration rules applied to it, all the expired object delete markers get automatically deleted too.

The ExpiredObjectDeleteMarker field It is also possible to only delete expired object delete markers automatically without setting an expiration rule, defining a new rule with just an ExpiredObjectDeleteMarker in it, e.g.:

"Expiration": {
"ExpiredObjectDeleteMarker": true
}

Expiration rules containing both Date/Days and ExpiredObjectDeleteMarker are not allowed.

Checking the expiration When you set an expiration rule on a bucket, performing an HeadObject or GetObject on a target object, you will get an Expiration header in this format: Expiration: expiry-date="Tue, 19 Nov 2024 00:00:00 GMT", rule-id="<id of the lifecycle rule>"


Example: how to apply a lifecycle configuration

Create a file containing these example lifecycle configuration, named 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.

The ID is optional and a random one will be set if not provided.

Funzioni non supportate

Al momento solo una regola per bucket è supportata. Ecco una lista di funzioni non supportate:

  • AbortIncompleteMultipartUpload
  • Filter
  • NoncurrentVersionTransition
  • Prefix
  • Transition

Bucket Lifecycle Policies UI

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