Esempi di configurazioni del ciclo di vita S3 - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di configurazioni del ciclo di vita S3

In questa sezione vengono forniti alcuni esempi di configurazione del ciclo di vita S3. Ogni esempio mostra come specificare il XML in ciascuno degli scenari di esempio.

Archiviazione di tutti gli oggetti entro un giorno dalla creazione

Ogni regola del ciclo di vita S3 include un filtro che è possibile utilizzare per identificare un sottoinsieme di oggetti nel bucket a cui si applica la regola del ciclo di vita S3. Le configurazioni del ciclo di vita S3 seguenti mostrano esempi di come specificare un filtro.

  • In questa regola di configurazione del ciclo di vita S3, il filtro specifica un prefisso della chiave (tax/). Pertanto la regola si applica agli oggetti con il prefisso del nome della chiave tax/, ad esempio tax/doc1.txt e tax/doc2.txt.

    La regola specifica due operazioni che richiedono ad Amazon S3 di eseguire quanto segue:

    • Trasferire gli oggetti nella classe di archiviazione S3 Glacier Flexible Retrieval dopo 365 giorni (un anno) dalla data di creazione.

    • Eliminare gli oggetti (operazione Expiration) dopo 3.650 giorni (10 anni) dalla data di creazione.

    <LifecycleConfiguration> <Rule> <ID>Transition and Expiration Rule</ID> <Filter> <Prefix>tax/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER</StorageClass> </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> </LifecycleConfiguration>

    Invece di specificare l'età dell'oggetto in termini di giorni dopo la creazione, è possibile specificare una data per ogni azione. Non è tuttavia possibile utilizzare sia Date sia Days nella stessa regola.

  • Per applicare la regola del ciclo di vita S3 a tutti gli oggetti nel bucket, occorre specificare un prefisso vuoto. Nella configurazione seguente, la regola specifica un'operazione Transition che indica ad Amazon S3 di trasferire gli oggetti nella classe di archiviazione S3 Glacier Flexible Retrieval dopo 0 giorni dalla data di creazione. Questa regola significa che gli oggetti sono idonei per l'archiviazione su S3 Glacier Flexible Retrieval a mezzanotte successiva alla creazione. UTC Per ulteriori informazioni sui vincoli del ciclo di vita, consulta la sezione Vincoli e considerazioni per le transizioni.

    <LifecycleConfiguration> <Rule> <ID>Archive all object same-day upon creation</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
  • È possibile specificare zero o un prefisso del nome della chiave e zero o più tag di oggetto in un filtro. Nel codice di esempio riportato di seguito la regola del ciclo di vita S3 viene applicata a un sottoinsieme di oggetti con il prefisso della chiave tax/ e agli oggetti che dispongono di due tag con chiave e valore specifici. Quando si specifica più di un filtro, è necessario includere l'elemento <And> come mostrato (Amazon S3 applica un'istruzione AND logica per combinare le condizioni del filtro specificate).

    ... <Filter> <And> <Prefix>tax/</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...

  • È possibile filtrare gli oggetti in base solo ai tag. La regola dei ciclo di vita S3 riportata di seguito, ad esempio, viene applicata agli oggetti che dispongono dei due tag specificati (non viene specificato alcun prefisso).

    ... <Filter> <And> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...

Importante

Quando sono presenti più regole in una configurazione S3 Lifecycle, un oggetto può diventare idoneo per più azioni S3 Lifecycle nello stesso giorno. In questi casi, Amazon S3 segue le seguenti regole generali:

Per alcuni esempi, consulta Esempi di filtri sovrapposti e azioni del ciclo di vita in conflitto.

Disattivazione temporanea delle regole del ciclo di vita

Puoi disabilitare temporaneamente una regola del ciclo di vita S3 utilizzando l'elemento. status Questo può essere utile se desideri testare nuove regole o risolvere problemi relativi alla configurazione, senza sovrascrivere le regole esistenti. Nella configurazione del ciclo di vita S3 seguente sono specificate due regole:

  • La regola 1 indica ad Amazon S3 di trasferire gli oggetti con il prefisso logs/ nella classe di archiviazione S3 Glacier Flexible Retrieval subito dopo la creazione.

  • La regola 2 indica ad Amazon S3 di trasferire gli oggetti con il prefisso documents/ nella classe di archiviazione S3 Glacier Flexible Retrieval subito dopo la creazione.

Nella configurazione, la regola 1 è abilitata e la regola 2 è disabilitata. Amazon S3 ignora la regola di disabilitazione.

<LifecycleConfiguration> <Rule> <ID>Rule1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>Rule2</ID> <Filter> <Prefix>documents/</Prefix> </Filter> <Status>Disabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

Suddivisione della classe di storage su più livelli per tutta la durata di vita di un oggetto

In questo esempio, la configurazione del ciclo di vita S3 viene utilizzata per abbassare la classe di archiviazione degli oggetti nel corso della loro esistenza. Tale abbassamento contribuisce a ridurre i costi di storage. Per ulteriori informazioni sui prezzi, consulta la sezione Prezzi di Amazon S3.

Nella configurazione del ciclo di vita S3 riportata di seguito viene specificata una regola che si applica agli oggetti con il prefisso del nome della chiave logs/. Nella regola vengono specificate le seguenti operazioni:

  • Due operazioni di trasferimento:

    • Trasferimento degli oggetti nella classe di archiviazione S3 Standard-IA - accesso infrequente dopo 30 giorni dalla data di creazione.

    • Trasferimento degli oggetti nella classe di archiviazione S3 Glacier Flexible Retrieval dopo 90 giorni dalla data di creazione.

  • Una operazione di scadenza che indica ad Amazon S3 di eliminare questi oggetti un anno dopo la creazione.

<LifecycleConfiguration> <Rule> <ID>example-id</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <Transition> <Days>90</Days> <StorageClass>GLACIER</StorageClass> </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
Nota

È possibile utilizzare un'unica regola per descrivere tutte le operazioni del ciclo di vita S3, se queste si applicano allo stesso insieme di oggetti (identificati dal filtro). In caso contrario, si possono aggiungere più regole per ogni oggetto specificando un filtro diverso.

Importante

Quando sono presenti più regole in una configurazione del ciclo di vita di S3, un oggetto può diventare idoneo per più azioni del ciclo di vita di S3 nello stesso giorno. In questi casi, Amazon S3 segue le seguenti regole generali:

Per alcuni esempi, consulta Esempi di filtri sovrapposti e azioni del ciclo di vita in conflitto.

Specificare più regole

Per eseguire operazioni del ciclo di vita S3 diverse su vari oggetti, è possibile specificare più regole. Nella configurazione del ciclo di vita S3 seguente sono specificate due regole:

  • La regola 1 si applica agli oggetti con il prefisso nel nome della chiav classA/. Questa regola indica ad Amazon S3 di trasferire gli oggetti alla classe di archiviazione S3 Glacier Flexible Retrieval un anno dopo la creazione e di rimuoverli dopo 10 anni dalla creazione.

  • La regola 2 si applica agli oggetti con il prefisso nel nome della chiav classB/. Questa regola indica ad Amazon S3 di trasferire gli oggetti alla classe di storage S3 Standard-IA 90 giorni dopo la creazione e di eliminarli dopo un anno dalla creazione.

<LifecycleConfiguration> <Rule> <ID>ClassADocRule</ID> <Filter> <Prefix>classA/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>365</Days>       <StorageClass>GLACIER</StorageClass>     </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> <Rule> <ID>ClassBDocRule</ID> <Filter> <Prefix>classB/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>90</Days>       <StorageClass>STANDARD_IA</StorageClass>     </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
Importante

Quando sono presenti più regole in una configurazione del ciclo di vita di S3, un oggetto può diventare idoneo per più azioni del ciclo di vita di S3 nello stesso giorno. In questi casi, Amazon S3 segue le seguenti regole generali:

Per alcuni esempi, consulta Esempi di filtri sovrapposti e azioni del ciclo di vita in conflitto.

Specificazione di una regola del ciclo di vita per un bucket abilitato al controllo delle versioni

Supponiamo di avere un bucket con il controllo delle versioni abilitato. Questo significa che per ogni oggetto esistono una versione corrente e zero o più versioni non correnti. (Per ulteriori informazioni su Controllo versioni S3, consulta Conservazione di più versioni di oggetti con S3 Versioning.) In questo esempio si vuole mantenere la cronologia di un anno e quindi eliminare le versioni non correnti. Le configurazioni S3 Lifecycle supportano il mantenimento da 1 a 100 versioni di qualsiasi oggetto.

Per risparmiare sui costi di archiviazione è necessario spostare le versioni non correnti in S3 Glacier Flexible Retrieval 30 giorni dopo che diventano non correnti (supponendo che si tratti di dati cold a cui non è necessario accedere in tempo reale). Inoltre, ti aspetti che la frequenza di accesso delle versioni correnti diminuisca 90 giorni dopo la creazione, quindi potresti scegliere di spostare questi oggetti nella classe di storage S3 Standard-IA.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>90</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <NoncurrentVersionTransition> <NoncurrentDays>30</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>5</NewerNoncurrentVersions> <NoncurrentDays>365</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Rimuovere i marker di eliminazione degli oggetti scaduti in un bucket abilitato al controllo delle versioni

Un bucket abilitato per la funzione Controllo delle versioni mantiene una versione corrente e zero o più versioni non correnti di ogni oggetto. Quando si elimina un oggetto, tenere presente quanto segue:

  • Se non si specifica un ID versione nella richiesta di eliminazione, Amazon S3 aggiunge un contrassegno di eliminazione invece di eliminare l'oggetto. La versione dell'oggetto corrente diventa non corrente, quindi il contrassegno di eliminazione diventa la versione corrente.

  • Se si specifica un ID versione nella richiesta di eliminazione, Amazon S3 elimina la versione dell'oggetto in modo permanente (non viene creato alcun contrassegno di eliminazione).

  • Un contrassegno di eliminazione con zero versioni non correnti viene definito un contrassegno di eliminazione oggetto scaduto.

In questo esempio viene mostrato uno scenario che può creare contrassegni di eliminazione oggetto scaduto nel bucket. Viene inoltre mostrato come utilizzare la configurazione del ciclo di vita S3 per indicare ad Amazon S3 di rimuovere i contrassegni di eliminazione oggetto scaduto.

Supponiamo di scrivere una configurazione del ciclo di vita S3 che utilizza l'NoncurrentVersionExpirationazione per rimuovere le versioni non correnti 30 giorni dopo che sono diventate non correnti e conserva al massimo 10 versioni non correnti, come mostrato nell'esempio seguente.

<LifecycleConfiguration> <Rule> ... <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

L'operazione NoncurrentVersionExpiration non si applica alle versioni correnti dell'oggetto. Rimuove solamente le versioni non correnti.

Per le versioni dell'oggetto correnti esistono le seguenti opzioni per gestirne la durata a seconda che le versioni dell'oggetto correnti seguano un ciclo di vita ben definito:

  • Le versioni correnti dell'oggetto seguono un ciclo di vita ben definito.

    In questo caso si può utilizzare una configurazione del ciclo di vita S3 con l'operazione Expiration per indicare ad Amazon S3 di rimuovere le versioni correnti, come mostrato nell'esempio seguente.

    <LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

    Amazon S3 rimuove le versioni correnti 60 giorni dopo la data di creazione aggiungendo un contrassegno di eliminazione per ognuna delle versioni dell'oggetto correnti. La versione corrente diventa quindi non corrente e il contrassegno di eliminazione diventa la versione corrente. Per ulteriori informazioni, consulta Conservazione di più versioni di oggetti con S3 Versioning.

    Nota

    Non è possibile specificare sia un tag Days che un tag ExpiredObjectDeleteMarker sulla stessa regola. Specificando il tag Days, Amazon S3 eseguirà automaticamente la pulizia di ExpiredObjectDeleteMarker una volta che i contrassegni di eliminazione sono abbastanza vecchi da soddisfare i criteri di età. È possibile creare una regola separata con solo il tag ExpiredObjectDeleteMarker per ripulire i contrassegni di eliminazione non appena diventano l'unica versione.

    L'operazione NoncurrentVersionExpiration nella stessa configurazione del ciclo di vita S3 rimuove gli oggetti non correnti 30 giorni dopo che sono diventati non correnti. Pertanto, in questo esempio, tutte le versioni degli oggetti vengono rimosse in modo permanente 90 giorni dopo la creazione dell'oggetto. Nonostante i contrassegni di eliminazione degli oggetti scaduti vengano creati durante questo processo, Amazon S3 rileva e rimuove i contrassegni di eliminazione degli oggetti scaduti per te.

  • Versioni correnti dell'oggetto che non seguono un ciclo di vita ben definito.

    In questo caso è possibile rimuovere gli oggetti manualmente quando non servono più, creando un contrassegno di eliminazione con una o più versioni non correnti. Se la configurazione del ciclo di vita S3 con l'operazione NoncurrentVersionExpiration rimuove tutte le versioni non correnti, rimarranno i contrassegni di eliminazione oggetto scaduto.

    In questo specifico scenario la configurazione del ciclo di vita S3 fornisce un'operazione Expiration che puoi utilizzare per rimuovere i contrassegni di eliminazione oggetto scaduto.

    <LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker> </Expiration> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Se si imposta l'elemento ExpiredObjectDeleteMarker su true nell'operazione Expiration, si indica ad Amazon S3 di rimuovere i contrassegni di eliminazione oggetto scaduto.

Nota

Quando si specifica l'operazione del ciclo di vita S3 ExpiredObjectDeleteMarker, nella regola non può essere specificato un filtro basato su tag.

Configurazione del ciclo di vita per interrompere i caricamenti in più parti

Puoi utilizzare le REST API operazioni di caricamento multiparte di Amazon S3 per caricare oggetti di grandi dimensioni in parti. Per ulteriori informazioni sui caricamenti in più parti, consulta la sezione Caricamento e copia di oggetti utilizzando il caricamento in più parti.

Utilizzando una configurazione del ciclo di vita di S3, puoi fare in modo che Amazon S3 interrompa i caricamenti incompleti in più parti (identificati dal prefisso del nome chiave specificato nella regola) se non vengono completati entro un determinato numero di giorni dall'avvio. Quando Amazon S3 interrompe un caricamento in più parti, elimina tutte le parti associate al caricamento in più parti. Questo processo aiuta a controllare i costi di archiviazione garantendo che non siano presenti caricamenti in più parti incompleti con parti archiviate in Amazon S3.

Nota

Quando si specifica l'operazione del ciclo di vita S3 AbortIncompleteMultipartUpload, nella regola non può essere specificato un filtro basato su tag.

Di seguito è riportata una configurazione del ciclo di vita S3 di esempio che specifica una regola con l'operazione AbortIncompleteMultipartUpload. Questa operazione richiede ad Amazon S3 di interrompere i caricamenti in più parti incompleti sette giorni dopo l'avvio.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix>SomeKeyPrefix/</Prefix> </Filter> <Status>rule-status</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

Oggetti non correnti in scadenza che non contengono dati

È possibile creare regole per la transizione degli oggetti in base alle dimensioni. Puoi specificare una dimensione minima (ObjectSizeGreaterThan) o una dimensione massima (ObjectSizeLessThan) oppure puoi specificare un intervallo di dimensioni dell'oggetto (in byte). Quando si utilizzano più filtri, ad esempio un prefisso e una regola di dimensione, è necessario racchiudere i filtri in un elemento <And>.

<LifecycleConfiguration> <Rule> <ID>Transition with a prefix and based on size</ID> <Filter> <And> <Prefix>tax/</Prefix> <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan> </And> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

Se stai specificando un intervallo utilizzando entrambi gli elementi ObjectSizeGreaterThan e ObjectSizeLessThan, la dimensione massima dell'oggetto deve essere maggiore della dimensione minima dell'oggetto. Quando si utilizzano più filtri, è necessario racchiudere i filtri in un elemento <And>. L'esempio seguente mostra come specificare oggetti in un intervallo compreso tra 500 byte e 64.000 byte. Quando si specifica un intervallo, i ObjectSizeLessThan filtri ObjectSizeGreaterThan and escludono i valori specificati. Per ulteriori informazioni, consulta Elemento Filter.

<LifecycleConfiguration> <Rule> ... <And> <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan> <ObjectSizeLessThan>64000</ObjectSizeLessThan> </And> </Rule> </LifecycleConfiguration>

È inoltre possibile creare regole per far scadere in modo specifico gli oggetti non correnti che non contengono dati, inclusi gli oggetti contrassegno di eliminazione non correnti creati in un bucket abilitato al controllo delle versioni. Nell'esempio seguente viene utilizzata l'azione NoncurrentVersionExpiration per rimuovere le versioni non correnti 30 giorni dopo che sono diventate non correnti e mantenere al massimo 10 versioni non correnti di oggetti. Inoltre, utilizza l'elemento ObjectSizeLessThan per filtrare solo gli oggetti senza dati.

<LifecycleConfiguration> <Rule> <ID>Expire noncurrent with size less than 1 byte</ID> <Filter> <ObjectSizeLessThan>1</ObjectSizeLessThan> </Filter> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Esempio: consentire la transizione di oggetti di dimensioni inferiori a 128 KB

Amazon S3 applica un comportamento predefinito alla configurazione del ciclo di vita che impedisce la transizione di oggetti di dimensioni inferiori a 128 KB a qualsiasi classe di storage. Puoi consentire la transizione di oggetti più piccoli aggiungendo un filtro di dimensione minima (ObjectSizeGreaterThan) o dimensione massima (ObjectSizeLessThan) che specifica una dimensione inferiore alla configurazione. L'esempio seguente consente a qualsiasi oggetto di dimensioni inferiori a 128 KB di passare alla classe di storage S3 Glacier Instant Retrieval:

<LifecycleConfiguration> <Rule> <ID>Allow small object transitions</ID> <Filter> <ObjectSizeGreaterThan>1</ObjectSizeGreaterThan> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER_IR</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
Nota

A settembre 2024 Amazon S3 ha aggiornato il comportamento di transizione predefinito per oggetti di piccole dimensioni, come segue:

  • Comportamento di transizione predefinito aggiornato: a partire da settembre 2024, il comportamento predefinito impedisce la transizione di oggetti di dimensioni inferiori a 128 KB a qualsiasi classe di storage.

  • Comportamento di transizione predefinito precedente: prima di settembre 2024, il comportamento predefinito consentiva la transizione di oggetti di dimensioni inferiori a 128 KB solo alle classi di storage S3 Glacier e S3 Glacier Deep Archive.

Le configurazioni create prima di settembre 2024 mantengono il comportamento di transizione precedente a meno che non vengano modificate. Cioè, se si creano, modificano o eliminano regole, il comportamento di transizione predefinito per la configurazione cambia in base al comportamento aggiornato. Se il tuo caso d'uso lo richiede, puoi modificare il comportamento di transizione predefinito in modo che gli oggetti più piccoli di 128 KB passino a S3 Glacier e S3 Glacier Deep Archive. A tale scopo, utilizzate l'intestazione opzionale in una richiesta. x-amz-transition-object-size-minimum-default PutBucketLifecycleConfiguration

L'esempio seguente mostra come utilizzare l'x-amz-transition-object-size-minimum-defaultintestazione in una PutBucketLifecycleConfigurationrichiesta per applicare il comportamento di transizione varies_by_storage_class predefinito a una configurazione del ciclo di vita. Questo comportamento consente agli oggetti di dimensioni inferiori a 128 KB di passare alle classi di storage S3 Glacier o S3 Glacier Deep Archive. Per impostazione predefinita, tutte le altre classi di archiviazione impediranno transizioni inferiori a 128 KB. Puoi comunque utilizzare filtri personalizzati per modificare la dimensione minima di transizione per qualsiasi classe di archiviazione. I filtri personalizzati hanno sempre la precedenza sul comportamento di transizione predefinito:

HTTP/1.1 200 x-amz-transition-object-size-minimum-default: varies_by_storage_class <?xml version="1.0" encoding="UTF-8"?> ...