Gestione del ciclo di vita degli oggetti (original) (raw)

Configurazione Esempi di configurazione

Per supportare casi d'uso comuni come impostare una durata (TTL) per gli oggetti, mantenere le versioni non correnti degli oggetti o eseguire il "downgrade" delle classi di archiviazione degli oggetti per agevolare il controllo dei costi, Cloud Storage offre la funzionalità Gestione del ciclo di vita degli oggetti.

Questa pagina descrive la funzionalità e le opzioni disponibili durante l'utilizzo. Per il formato generale di un file di configurazione del ciclo di vita, consulta la rappresentazione della risorsa del bucket per JSON o il formato di configurazione del ciclo di vita per XML.

Introduzione

Per utilizzare la gestione del ciclo di vita degli oggetti, devi definire una configurazione del ciclo di vita, che deve essere impostata su un bucket. La configurazione contiene un insieme di regole che si applicano agli oggetti attuali e futuri del bucket. Quando un oggetto soddisfa i criteri di una delle regole, Cloud Storage esegue automaticamente un'azione specificata sull'oggetto. Ecco alcuni casi d'uso di esempio:

Configurazione del ciclo di vita

Ogni configurazione per la gestione del ciclo di vita contiene un insieme di regole. Ogni regola contiene un'azione e una o più condizioni.

Per i casi d'uso, consulta Esempi di configurazione per la gestione del ciclo di vita degli oggetti.

Azioni del ciclo di vita

Una regola del ciclo di vita specifica esattamente una delle seguenti azioni:

Elimina

L'azione Delete elimina un oggetto quando soddisfa tutte le condizioni specificate nella regola del ciclo di vita. Per impostazione predefinita, quando elimini un oggetto attivo, questo viene eliminato temporaneamente e Cloud Storage lo conserva per una durata di sette giorni. Puoi ripristinare questo oggetto eliminato temporaneamente entro la durata della conservazione dell'eliminazione temporanea.

Eccezione: nei bucket con il controllo delle versioni degli oggetti abilitato, l'eliminazione della versione live di un oggetto ne fa una versione non corrente, mentre l'eliminazione di una versione non corrente comporta l'eliminazione della versione dal bucket. Consulta la configurazione per l'eliminazione degli oggetti per un esempio di utilizzo dell'azione Delete insieme al controllo delle versioni degli oggetti.

L'azione Delete non viene applicata a un oggetto se su quest'ultimo è stata applicata un'archiviazione a fini legali o un criterio di conservazione che non è stato ancora soddisfatto. Finché le condizioni nell'azione Delete rimangono soddisfatte per l'oggetto, l'azione Delete viene eseguita dopo la rimozione di eventuali blocchi degli oggetti e il rispetto di eventuali criteri di conservazione.

SetStorageClass

L'azione SetStorageClass modifica la classe di archiviazione di un oggetto e aggiorna il momento di modifica dell'oggetto quando l'oggetto soddisfa tutte le condizioni specificate nella regola del ciclo di vita.

SetStorageClass supporta le seguenti transizioni di classi di archiviazione:

Classe di archiviazione originale Nuova classe di archiviazione
Durable Reduced Availability (DRA) Storage Nearline StorageColdline StorageArchive StorageMulti-Regional Storage/Regional Storage1
Spazio di archiviazione standard, Multi-Regional Storage o Regional Storage Nearline StorageColdline StorageArchive Storage
Nearline Storage Coldline StorageArchive Storage
Coldline Storage Archive Storage

1 Per i bucket in una regione, la nuova classe di archiviazione non può essere Multi-Regional Storage. Per i bucket in una multiregione o una regione doppia, la nuova classe di archiviazione non può essere archiviazione regionale.

Cloud Storage non convalida la correttezza della transizione della classe di archiviazione. Ciò significa che puoi specificare una transizione di classi di archiviazione non elencata nella tabella precedente, ma la transizione non verrà eseguita. Devi verificare che le regole del ciclo di vita utilizzino una delle transizioni di classi di archiviazione elencate.

Interrompere i caricamenti multiparte incompleti

L'azione AbortIncompleteMultipartUpload interrompe uncaricamento a più parti incompleto ed elimina le parti associate quando il caricamento a più parti soddisfa le condizioni specificate nella regola del ciclo di vita.

Con questa azione possono essere utilizzate solo le seguenti condizioni del ciclo di vita:

Il tentativo di creare una regola che utilizza l'azione AbortIncompleteMultipartUploadin combinazione con altre condizioni genera un errore.

Condizioni del ciclo di vita

Una regola del ciclo di vita include le condizioni che un oggetto deve soddisfare prima che l'azione definita nella regola venga eseguita sull'oggetto. Le regole del ciclo di vita supportano le seguenti condizioni:

Tutte le condizioni sono facoltative, ma è necessaria almeno una condizione. Se tenti di impostare una configurazione del ciclo di vita non valida, ad esempio utilizzando un'azione o una condizione inesistente, ricevi una risposta di errore 400 Bad requeste qualsiasi configurazione del ciclo di vita esistente rimane invariata.

age

La condizione age è soddisfatta quando una risorsa raggiunge l'età specificata (in giorni). La durata viene misurata dalla data e dall'ora di creazione della risorsa.

Ad esempio, se una risorsa viene creata il 10/01/2022 alle 10:00 UTC e la condizione age è 10 giorni, la condizione è soddisfatta per la risorsa a partire dal giorno 20/01/2022 alle 10:00 UTC.

createdBefore

La condizione createdBefore è soddisfatta quando un oggetto viene creato prima della mezzanotte della data specificata in UTC.

customTimeBefore

La condizione customTimeBefore è soddisfatta quando la parte relativa alla data dei metadati Custom-Time di un oggetto è precedente alla data specificata in questa condizione. Questa condizione viene impostata utilizzando il formato della data YYYY-MM-DD.customTimeBefore non è mai soddisfatto per un oggetto senza un set di metadati Custom-Time.

daysSinceCustomTime

La condizione daysSinceCustomTime è soddisfatta quando è trascorso il numero specificato di giorni dalla data e dall'ora specificate nel campo dei metadati Custom-Time di un oggetto. Ad esempio, se Custom-Time di un oggetto è2020-05-16T10:00:00Z e la condizione daysSinceCustomTime è 10 giorni, la condizione è soddisfatta per l'oggetto a partire dal giorno 26/05/2020 alle ore 10:00 UTC.

daysSinceCustomTime non è mai soddisfatto per un oggetto senza un set di metadati Custom-Time.

daysSinceNoncurrentTime

La condizione daysSinceNoncurrentTime viene in genere utilizzata solo in combinazione con il controllo delle versioni degli oggetti. La condizione è soddisfatta quando è trascorso il numero di giorni specificato da quando l'oggetto è diventato non aggiornato, perché la versione live è stata eliminata o sostituita. Ad esempio, se un oggetto è diventato non aggiornato alle ore 15:00 UTC del 08/07/2020 e la condizione daysSinceNoncurrentTime è 10 giorni, la condizione è soddisfatta per l'oggetto a partire dalle ore 15:00 UTC del 18/07/2020.

isLive

La condizione isLive viene in genere utilizzata solo in combinazione con il controllo delle versioni degli oggetti. Se impostato su false, questa condizione è soddisfatta per qualsiasi versione non corrente di un oggetto. Se impostato su true, questa condizione è soddisfatta per la versione live di un oggetto. Se non utilizzi il controllo delle versioni, tutti gli oggetti vengono considerati pubblicati e corrispondono quando isLive è true.

matchesPrefix e matchesSuffix

Le condizioni matchesPrefix e matchesSuffix sono soddisfatte quando l'inizio o la fine del nome di un oggetto corrisponde esattamente, con sensibilità alle maiuscole, al prefisso o al suffisso specificato. Puoi specificare più stringhe come elenco (ad es. "matchesSuffix": [".jpg", ".png"]).

Quando utilizzi matchesPrefix, non includere il nome del bucket o il / che precede i nomi degli oggetti nella maggior parte dei percorsi delle richieste. Ad esempio, nell'interfaccia a riga di comando Google Cloud, il percorso di un oggetto in un bucket denominato my_bucket ha un formato simile a gs://my_bucket/pictures/paris_2022.jpg. Per trovare una corrispondenza con l'oggetto, utilizza una condizione come "matchesPrefix":["pictures/paris_"].

Puoi specificare fino a 50 prefissi e 50 suffissi in tutte le regole. Un prefisso o un suffisso non può essere utilizzato due volte in una singola condizione.

matchesStorageClass

La condizione matchesStorageClass è soddisfatta quando un oggetto nel bucket viene memorizzato come classe di archiviazione specificata. Puoi utilizzare i seguenti valori permatchesStorageClass: STANDARD, NEARLINE, COLDLINE, ARCHIVE,MULTI_REGIONAL, REGIONAL e DURABLE_REDUCED_AVAILABILITY.

In genere, se intendi utilizzare la condizione matchesStorageClass su oggetti di archiviazione standard, devi includere anche quanto segue:

L'inclusione di queste classi aggiuntive garantisce che la regola del ciclo di vita copra gli oggetti meno recenti nei tuoi bucket, che potrebbero essere impostati su classi di archiviazione precedenti.

noncurrentTimeBefore

La condizione noncurrentTimeBefore viene in genere utilizzata solo in combinazione con il controllo delle versioni degli oggetti. La condizione è soddisfatta per gli oggetti che non sono più aggiornati in una data precedente a quella specificata in questa condizione. La condizione viene impostata utilizzando il formato della data YYYY-MM-DD. noncurrentTimeBefore non è mai soddisfatto per un oggetto in tempo reale.

numNewerVersions

La condizione numNewerVersions viene in genere utilizzata solo in combinazione con il controllo delle versioni degli oggetti. Se il valore di questa condizione è impostato su N, una versione dell'oggetto soddisfa la condizione quando esistono almeno N versioni (inclusa la versione attiva) più recenti. Per una versione dell'oggetto attiva, il numero di versioni più recenti è considerato pari a 0. Per la versione non corrente più recente, il numero di versioni più recenti è 1 (o 0 se non esiste una versione dell'oggetto attiva) e così via.

Comportamento del ciclo di vita degli oggetti

Cloud Storage ispeziona regolarmente tutti gli oggetti di un bucket per cui è configurata la gestione del ciclo di vita degli oggetti ed esegue tutte le azioni applicabili in base alle regole del bucket. Cloud Storage esegue un'azione in modo asincrono, pertanto può esserci un ritardo tra il momento in cui le condizioni sono soddisfatte e quello in cui viene eseguita l'azione. Le applicazioni non devono fare affidamento su azioni del ciclo di vita che si verificano entro un determinato periodo di tempo dopo la soddisfazione di una condizione del ciclo di vita.

Ad esempio, se un oggetto soddisfa le condizioni per l'eliminazione, l'oggetto potrebbe non essere eliminato immediatamente e potresti visualizzarlo fino a quando non viene eseguita l'azione del ciclo di vita sull'oggetto.

Gli addebiti applicabili continuano a essere applicati finché l'oggetto rimane nel suo stato originale, con un'eccezione: i costi di archiviazione dei dati inattivi vengono waived se l'oggettosoddisfa tutti i seguenti criteri:

Comportamento del ciclo di vita degli oggetti negli oggetti sottoposti a controllo delle versioni

Nei bucket in cui è abilitato il controllo delle versioni degli oggetti, un oggetto attivo eliminato in base alle regole del ciclo di vita esisterà in uno stato non corrente per un determinato periodo di tempo. Se la versione non corrente dell'oggetto soddisfa anche le condizioni della regola di eliminazione, verrà eliminata anche la versione non corrente dell'oggetto al termine del periodo di tempo.

Ad esempio, supponiamo che esista una regola del ciclo di vita che elimini gli oggetti più vecchi di 180 giorni. Se un oggetto attivo risale a 200 giorni fa, viene eliminato e diventa non corrente. L'oggetto ora non corrente è ancora precedente a 180 giorni, pertanto viene eliminato anche dopo un po' di tempo.

SetStorageClass considerazioni sui costi

Analogamente alla modifica manuale della classe di archiviazione di un oggetto, l'utilizzo di SetStorageClass viene conteggiato come operazione di classe A e viene fatturato in base alla tariffa determinata dalla classe di archiviazione di destinazione.

A differenza della modifica manuale della classe di archiviazione di un oggetto, l'utilizzo di SetStorageClass non comporta la riscrittura di un oggetto. Questo offre a Gestione del ciclo di vita degli oggetti alcuni vantaggi di prezzo:

Ad esempio, supponiamo che tu carichi un oggetto come Nearline Storage e 20 giorni dopo la configurazione del ciclo di vita modifichi la classe di archiviazione dell'oggetto in Coldline Storage. Questa modifica non comporta costi di recupero o eliminazione anticipata. Se poi elimini l'oggetto 60 giorni dopo la modifica della classe di archiviazione, ti verrà addebitato solo un costo di eliminazione anticipata di 10 giorni, poiché Coldline Storage ha una durata minima di archiviazione di 90 giorni e l'oggetto è esistito per un totale di 80 giorni.

In confronto, supponiamo che carichi un oggetto come Nearline Storage e 20 giorni dopo modifichi la classe di archiviazione utilizzando una riscrittura (di nuovo in Coldline Storage). Questa modifica comporta sia una commissione di recupero sia un addebito per eliminazione anticipata di 10 giorni. Se poi elimini l'oggetto 60 giorni dopo la riscrittura, verrà addebitato un costo di eliminazione anticipata di 30 giorni.

In entrambi gli esempi, se l'eliminazione temporanea è abilitata nel bucket, i costi di archiviazione aumentano, ma quelli di eliminazione anticipata si riducono in base alla durata del periodo di conservazione dell'eliminazione temporanea.

Ora di creazione dell'oggetto

In molti casi, il caricamento di un oggetto viene completato poco dopo l'inizio. Tuttavia, per i caricamenti che avvengono tramite più richieste, ad esempio i caricamenti riavviabili, possono trascorrere giorni tra l'invio della richiesta di caricamento iniziale e l'invio della richiesta di caricamento finale. In questi casi, tieni presente quanto segue:

Metadati relativi alla data/all'ora di scadenza

Se per un bucket è specificata un'azione Delete con la condizione age (e non sono presenti altre condizioni oltre a matchesStorageClass), alcuni oggetti potrebbero essere contrassegnati con metadati relativi alla data e all'ora di scadenza. La data e l'ora di scadenza di un oggetto indicano il momento in cui l'oggetto diventa (o è diventato) idoneo per l'eliminazione da parte di Gestione del ciclo di vita degli oggetti. La data e l'ora di scadenza potrebbero cambiare in base alla configurazione del ciclo di vita o ai criteri di conservazione del bucket.

Tieni presente che l'assenza di metadati relativi alla data di scadenza non significa necessariamente che l'oggetto non verrà eliminato, ma piuttosto che non sono disponibili informazioni sufficienti per determinare quando o se verrà eliminato. Ad esempio, se la data e l'ora di creazione dell'oggetto sono 10/01/2020 10:00 UTC e la condizione age è impostata su 10 giorni, la data e l'ora di scadenza dell'oggetto sono 20/01/2020 10:00 UTC. Tuttavia, la data e l'ora di scadenza non sono disponibili per l'oggetto se:

Non ti viene addebitato alcun costo per lo spazio di archiviazione dopo la data e l'ora di scadenza dell'oggetto, anche se l'oggetto non viene eliminato immediatamente. Puoi continuare ad accedere all'oggetto prima che venga eliminato e sei responsabile di altri addebiti (richiesta, larghezza di banda della rete). Se la data di scadenza non è disponibile per un oggetto, a quest'ultimo viene addebitato lo spazio di archiviazione fino al momento dell'eliminazione.

Quando utilizzi le date di scadenza, tieni presente quanto segue:

Opzioni per il monitoraggio delle azioni del ciclo di vita

Per monitorare le azioni di gestione del ciclo di vita intraprese da Cloud Storage, utilizza una delle seguenti opzioni:

Passaggi successivi