Controllo delle versioni degli oggetti

Configurazione Utilizzo

Il controllo delle versioni degli oggetti conserva gli oggetti eliminati come oggetti non correnti sottoposti al controllo delle versioni che rimangono accessibili nel bucket finché non vengono rimossi esplicitamente. Questa funzionalità viene utilizzata per tenere traccia delle modifiche agli oggetti e per consentire il recupero di versioni specifiche di un oggetto. In questa pagina vengono descritte la funzionalità e le opzioni disponibili quando la si utilizza.

Ti consigliamo di utilizzare eliminazione temporanea anziché il controllo delle versioni degli oggetti per evitare la perdita permanente di dati da eliminazioni accidentali o dannose. Per scoprire di più su quando utilizzare l'eliminazione temporanea e il controllo delle versioni degli oggetti, consulta Considerazioni.

Introduzione

Puoi abilitare il controllo delle versioni degli oggetti per un bucket. Una volta attivata la funzionalità:

  • Cloud Storage conserva una versione dell'oggetto non corrente ogni volta che sostituisci o elimini una versione dell'oggetto live, purché non specifichi il numero di generazione della versione attiva.

    • Le versioni non correnti conservano il nome dell'oggetto, ma sono identificate in modo univoco dal relativo numero di generazione.

    • Le versioni non correnti vengono visualizzate solo nelle richieste che ne chiedono esplicitamente l'inclusione.

  • Puoi eliminare una versione non corrente di un oggetto includendo il numero di generazione nella richiesta di eliminazione o utilizzando Gestione del ciclo di vita degli oggetti.

  • In un bucket con l'eliminazione temporanea abilitata, non puoi eliminare definitivamente un oggetto non corrente fino al termine della durata di conservazione dell'eliminazione temporanea. Quando elimini un oggetto non attuale, Cloud Storage cambia il suo stato in Eliminato temporaneamente. Un oggetto eliminato temporaneamente viene eliminato definitivamente dopo la scadenza del periodo di conservazione dell'eliminazione temporanea.

  • Le versioni non correnti degli oggetti esistono indipendentemente dalle versioni attive.

Se disattivi il controllo delle versioni degli oggetti:

  • Il bucket non accumula più nuove versioni non correnti degli oggetti.

  • Le versioni degli oggetti già presenti nel bucket non subiranno modifiche.

Considerazioni

  • Il controllo delle versioni degli oggetti non può essere abilitato in un bucket che attualmente dispone di un criterio di conservazione.
  • Non esiste un limite predefinito al numero di versioni degli oggetti che puoi avere. A ogni versione non corrente di un oggetto viene addebitata la stessa tariffa di un oggetto quando era attivo.

  • I costi per l'eliminazione anticipata si applicano solo quando una versione dell'oggetto viene rimossa dal bucket, non quando la versione diventa non corrente. La durata di archiviazione di una versione rimossa da un bucket si basa sul momento in cui questa è stata aggiunta al bucket, non su quella in cui è diventata non corrente.

  • Se abiliti il controllo delle versioni, potresti utilizzare la Gestione del ciclo di vita degli oggetti, che consente di rimuovere le versioni precedenti di un oggetto dopo un determinato periodo di tempo o man mano che le versioni più recenti diventano non correnti. Per una possibile configurazione, consulta l'esempio di configurazione del ciclo di vita per l'eliminazione di oggetti.

  • Per determinare se abilitare il controllo delle versioni degli oggetti o l'eliminazione temporanea sul tuo bucket, considera i seguenti punti:

    • Se vuoi evitare la perdita permanente di dati da eliminazioni accidentali o dannose, utilizza l'eliminazione temporanea anziché il controllo delle versioni degli oggetti. L'eliminazione temporanea fornisce protezione a livello di bucket conservando tutti gli oggetti attivi o non attuali eliminati di recente. Protegge inoltre da eliminazioni a livello di bucket.
    • Se hai requisiti di fatturazione specifici e hai configurato regole di gestione del ciclo di vita degli oggetti utilizzando il prefisso per mantenere un numero specificato di versioni non correnti, utilizza il controllo delle versioni degli oggetti.

      In questo scenario, ottieni una protezione parziale dalle eliminazioni accidentali perché il controllo delle versioni degli oggetti non protegge da eventi a livello di bucket o da eliminazioni indesiderate di oggetti non correnti.

    • Gli oggetti non correnti sono accessibili e leggibili, mentre gli oggetti eliminati temporaneamente vengono conservati offline e non sono leggibili. Il ripristino degli oggetti eliminati temporaneamente richiede autorizzazioni IAM specifiche disponibili per il ruolo IAM Amministratore archiviazione (roles/storage.admin).

      Se vuoi accedere agli oggetti eliminati più di recente e a un alto livello di protezione contro la perdita permanente di dati da eventi di eliminazione accidentali o dannosi, puoi abilitare il controllo delle versioni degli oggetti e l'eliminazione temporanea nello stesso bucket. Puoi configurare il criterio Gestione del ciclo di vita degli oggetti in modo da eliminare automaticamente le versioni non correnti dopo un numero specifico di giorni e quindi utilizzare l'eliminazione temporanea per fornire un ulteriore livello di protezione.

Metadati degli oggetti non correnti

Le versioni non correnti degli oggetti hanno i propri metadati, che possono differire dai metadati della versione attiva. Ma soprattutto, una versione non corrente conserva i propri ACL e non ha necessariamente le stesse autorizzazioni della versione live.

Ogni versione, pubblicata o non corrente, ha un set di metadati; solo l'ultimo numero di metagenerazione fa riferimento ai metadati. Non è possibile usare numeri di metagenerazione precedenti per accedere ai metadati che sono stati modificati.

Puoi aggiornare i metadati per una versione non corrente di un oggetto specificando il relativo generation nella richiesta. Per garantire una semantica di lettura, modifica e scrittura sicura, puoi utilizzare una precondizione di corrispondenza della metagenerazione. L'uso di questa precondizione fa sì che l'aggiornamento non vada a buon fine se i metadati che stai tentando di aggiornare sono stati modificati tra il momento in cui hai letto i metadati e hai inviato l'aggiornamento.

Esempio di controllo delle versioni degli oggetti

Questo esempio mostra cosa succede al file cat.jpg in un bucket in cui sono abilitati il controllo delle versioni degli oggetti e l'eliminazione temporanea quando sostituisci, aggiorni ed elimini il file.

Carichi una nuova immagine

Quando carichi per la prima volta cat.jpg in Cloud Storage, questo riceve un numero generation e un numero metageneration. In questo esempio, il numero di generazione è 1360887697105000. Poiché l'oggetto è nuovo, il numero di metageneration è 1.

cat.jpg riceve i numeri generation e metageneration anche se il controllo delle versioni degli oggetti non è abilitato. Puoi ottenere questi valori visualizzando i metadati degli oggetti.

Abilita il controllo delle versioni degli oggetti

A questo punto, decidi di abilitare il controllo delle versioni degli oggetti per il tuo bucket. Questa operazione non influisce sulle cifre di generation o metageneration di cat.jpg.

Modifica i metadati dell'immagine

Puoi aggiornare i metadati per cat.jpg aggiungendo metadati personalizzati: color:black. L'aggiornamento dei metadati determina un aumento del valore metageneration di cat.jpg, in questo caso da 1 a 2. Tuttavia, l'oggetto rimane invariato, quindi Cloud Storage continua ad archiviare una sola versione di cat.jpg e la versione continua ad avere un numero generation pari a 1360887697105000.

Carichi una nuova versione dell'immagine

Carichi una nuova versione di cat.jpg nel bucket Cloud Storage. Quando lo fai, il controllo delle versioni degli oggetti sposta l'oggetto cat.jpg esistente in uno stato non attuale. La versione non corrente conserva la stessa classe di archiviazione e i metadati che aveva in precedenza. La versione non corrente viene visualizzata solo se esegui un elenco con il controllo delle versioni: non compare nei normali comandi dell'elenco. Ora si fa riferimento alla versione non corrente: cat.jpg#1360887697105000.

Nel frattempo, l'oggetto cat.jpg appena caricato diventa la versione live dell'oggetto. Questo nuovo cat.jpg riceve il proprio numero di generation, in questo esempio 1360887759327000. Recupera anche i propri metadati e un numero metageneration di 1, il che significa che non contiene i metadati color:black a meno che tu non li specifichi. Quando accedi o modifichi cat.jpg,, questa è la versione utilizzata. In alternativa, puoi fare riferimento a questa versione di cat.jpg utilizzando il suo numero generation. Ad esempio, quando utilizzi Google Cloud CLI, la fai riferimento come cat.jpg#1360887759327000.

Elimini la versione live dell'immagine

Ora elimini cat.jpg. Quando esegui questa operazione, la versione con il numero di generazione 1360887759327000 diventa non corrente. Il bucket ora contiene due versioni non correnti di cat.jpg e nessuna versione attiva. Puoi comunque fare riferimento a una delle due versioni non correnti utilizzando il relativo numero generation, ma se provi ad accedere a cat.jpg senza un numero generation, l'accesso non va a buon fine.

Analogamente, un normale elenco di oggetti del bucket non mostrerà cat.jpg come uno degli oggetti del bucket. Per informazioni sull'elenco delle versioni non correnti degli oggetti, consulta Elenco delle versioni degli oggetti non correnti.

disabiliti il controllo delle versioni degli oggetti

Puoi disabilitare il controllo delle versioni degli oggetti, che impedisce agli oggetti di diventare non correnti. Le versioni non correnti degli oggetti esistenti rimangono in Cloud Storage. Anche se il controllo delle versioni degli oggetti è disabilitato, cat.jpg#1360887697105000 e cat.jpg#1360887759327000 rimangono archiviati nel bucket finché non li elimini.

Ripristini una delle versioni non correnti

Anche con il controllo delle versioni degli oggetti disabilitato, puoi creare una copia di una delle versioni non attuali esistenti, che di fatto ripristina la versione. Una volta eseguita questa operazione, il bucket avrà tre versioni di cat.jpg: le due versioni non correnti e la versione attiva proveniente dal ripristino.

Elimini una delle versioni non correnti

Puoi eliminare una versione non corrente di un oggetto manualmente o utilizzando la gestione del ciclo di vita degli oggetti.

Quando elimini una versione non corrente, cat.jpg#1360887697105000, questa viene eliminata temporaneamente. Questo oggetto eliminato temporaneamente viene conservato per la durata di conservazione dell'eliminazione temporanea specificata nel criterio di eliminazione temporanea del bucket. Al termine della durata di conservazione, Cloud Storage elimina definitivamente la versione eliminata temporaneamente di questo oggetto.

Ripristinerai una delle versioni degli oggetti eliminate temporaneamente

Anche con il controllo delle versioni degli oggetti disabilitato, puoi ripristinare una versione eliminata temporaneamente di un oggetto non corrente. Una copia di una versione eliminata temporaneamente viene ripristinata come versione live con nuovi metadati dell'oggetto e una nuova data di creazione. Anche l'oggetto originale eliminato temporaneamente rimane nel bucket e viene eliminato definitivamente alla scadenza della durata di conservazione dell'eliminazione temporanea.

Riferimento al controllo delle versioni degli oggetti

Questa tabella di riferimento mostra cosa succede quando esegui determinate azioni con il controllo delle versioni degli oggetti.

Stato controllo delle versioni degli oggetti Stato eliminazione temporanea Azione Risultato
Disabilitata Disabilitata
Elimina dog.png. Eliminazione definitiva di dog.png completata.
Elimina una versione non corrente di dog.png specificando il numero di generazione.1 La versione non corrente è stata eliminata definitivamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione attiva e riceve un nuovo numero di generazione. La vecchia versione pubblicata è stata eliminata definitivamente.
Copia una versione non corrente di dog.png sulla versione pubblicata.1 Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La vecchia versione pubblicata è stata eliminata definitivamente.
Disabilitata Abilitata
Elimina dog.png. dog.png eliminato temporaneamente.
Elimina una versione non corrente di dog.png specificando il numero di generazione.1 La versione non corrente è stata eliminata temporaneamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione attiva e riceve un nuovo numero di generazione. La vecchia versione pubblicata è stata eliminata temporaneamente.
Copia una versione non corrente di dog.png sulla versione pubblicata.1 Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La vecchia versione pubblicata è stata eliminata temporaneamente.
Abilitata Disabilitata
Elimina la versione live di dog.png senza specificare il numero di generazione. La versione live diventa una versione non corrente e mantiene lo stesso numero di generazione.
Elimina la versione live di dog.png specificando il numero di generazione. La versione live è stata eliminata definitivamente.
Elimina una versione non corrente di dog.png specificando il numero di generazione. La versione non corrente è stata eliminata definitivamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione attiva e riceve un nuovo numero di generazione. La versione live precedente diventa una versione non corrente e mantiene lo stesso numero di generazione.
Copia una versione non corrente di dog.png sulla versione pubblicata. Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La versione live precedente diventa una versione non corrente e mantiene lo stesso numero di generazione.
Abilitata Abilitata
Elimina la versione live di dog.png senza specificare il numero di generazione. La versione live diventa una versione non corrente e mantiene lo stesso numero di generazione.
Elimina la versione live di dog.png specificando il numero di generazione. La versione live è stata eliminata temporaneamente.
Elimina una versione non corrente di dog.png specificando il numero di generazione. La versione non corrente è stata eliminata temporaneamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione attiva e riceve un nuovo numero di generazione. La versione live precedente diventa una versione non corrente e mantiene lo stesso numero di generazione.
Copia una versione non corrente di dog.png sulla versione pubblicata. Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La versione live precedente diventa una versione non corrente e mantiene lo stesso numero di generazione.

1 Potrebbe esistere una versione non corrente se in precedenza il bucket aveva il controllo delle versioni degli oggetti abilitato.

Comportamento di ripristino dei file

Puoi ripristinare in modo efficace una versione dell'oggetto non corrente alla versione live attuale. Consulta Ripristinare le versioni degli oggetti non correnti per una guida passo passo per eseguire questa operazione.

Quando esegui questa operazione con il controllo delle versioni degli oggetti abilitato, se esiste già una versione live dell'oggetto nel tuo bucket, Cloud Storage sostituisce la versione live esistente, ma la conserva come nuova versione non corrente. In questo caso, il bucket successivamente contiene l'oggetto sostituito (ora non corrente) e due copie dell'oggetto che in precedenza non era corrente (una copia in tempo reale e una copia ancora non corrente), tutte soggette a costi di archiviazione. Per evitare addebiti non necessari, elimina la versione non corrente che hai utilizzato per creare la copia live corrente oppure configura la Gestione del ciclo di vita degli oggetti per rimuovere gli oggetti non correnti quando soddisfano le condizioni specificate.

Passaggi successivi