Controllo delle versioni degli oggetti

Configurazione Utilizzo

Il controllo delle versioni degli oggetti conserva gli oggetti eliminati come oggetti non correnti con controllo delle versioni che rimangono accessibili nel bucket fino a quando non vengono rimossi esplicitamente. Questa funzionalità viene utilizzata per monitorare le modifiche agli oggetti e per consentire il recupero di versioni specifiche di un oggetto. Questa pagina descrive la funzionalità e le opzioni disponibili quando la utilizzi.

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

Introduzione

Attivi il controllo delle versioni degli oggetti per un bucket. Una volta attivata:

  • Cloud Storage conserva una versione non corrente di un oggetto ogni volta che sostituisci o elimini una versione live di un oggetto, a condizione che non specifichi il numero di generazione della versione live.

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

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

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

  • In un bucket con l'eliminazione temporanea abilitata, quando elimini un oggetto non corrente, Cloud Storage ne modifica lo stato in eliminato temporaneamente. Un oggetto eliminato temporaneamente viene eliminato definitivamente alla scadenza del periodo di conservazione dell'eliminazione temporanea.

  • Le versioni non correnti degli oggetti esistono indipendentemente da qualsiasi versione live.

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 sono interessate.

Considerazioni

  • Non esiste un limite predefinito al numero di versioni degli oggetti che puoi avere. Ogni versione non corrente di un oggetto viene fatturata alla stessa tariffa di quando era attiva.

  • Le tariffe 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 è stata aggiunta al bucket, non sul momento in cui è diventata non corrente.

  • Se attivi il controllo delle versioni, valuta la possibilità di utilizzare la gestione del ciclo di vita degli oggetti, che può rimuovere le versioni precedenti di un oggetto dopo un periodo di tempo specificato o quando 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 attivare il controllo delle versioni degli oggetti o l'eliminazione temporanea nel tuo bucket, considera i seguenti punti:

    • Se vuoi evitare la perdita permanente di dati dovuta a eliminazioni accidentali o dannose, utilizza l'eliminazione temporanea anziché il controllo delle versioni degli oggetti. L'eliminazione temporanea offre protezione a livello di bucket conservando tutti gli oggetti attivi o non attuali eliminati di recente. Inoltre, può proteggere dalle eliminazioni a livello di bucket.

    • Se hai requisiti di fatturazione specifici e hai configurato regole di gestione del ciclo di vita degli oggetti per conservare un numero specificato di versioni non correnti, utilizza il controllo delle versioni degli oggetti.

      In questo scenario, ottieni solo una protezione parziale dalle eliminazioni accidentali, perché il controllo delle versioni degli oggetti non protegge dagli eventi a livello di bucket o dalle 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 di oggetti eliminati temporaneamente richiede autorizzazioni IAM specifiche disponibili per il ruolo IAM Storage Admin (roles/storage.admin).

      Se vuoi accedere agli oggetti eliminati più di recente e un livello elevato di protezione contro la perdita permanente di dati dovuta a eventi di eliminazione accidentale e dannosa, puoi attivare il controllo delle versioni degli oggetti e l'eliminazione temporanea nello stesso bucket. Puoi configurare la policy di gestione del ciclo di vita degli oggetti per eliminare automaticamente le versioni non correnti dopo un numero specifico di giorni, 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 essere diversi da quelli della versione pubblicata. Inoltre, una versione non corrente conserva i propri ACL e non ha necessariamente le stesse autorizzazioni della versione pubblicata.

Ogni versione, attiva o non corrente, ha un set di metadati; solo il numero di metagenerazione più recente fa riferimento ai metadati. I numeri di metagenerazione precedenti non possono essere utilizzati per accedere ai metadati che sono stati modificati.

Puoi aggiornare i metadati di una versione non corrente di un oggetto specificando il relativo generation nella richiesta. Per garantire una semantica di lettura-modifica-scrittura sicura, puoi utilizzare una precondizione di corrispondenza della metagenerazione. L'utilizzo di questa precondizione causa l'errore dell'aggiornamento se i metadati che stai tentando di aggiornare sono stati modificati tra il momento in cui li hai letti e quello in cui hai inviato l'aggiornamento.

Esempio di controllo delle versioni degli oggetti

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

Carichi una nuova immagine

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

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

Attivi il controllo delle versioni degli oggetti

A questo punto, decidi di attivare il controllo delle versioni degli oggetti per il tuo bucket. In questo modo, i numeri generation o metageneration di cat.jpg non vengono modificati.

Modifichi i metadati dell'immagine

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

Carichi una nuova versione dell'immagine

Carichi una nuova versione di cat.jpg nel tuo bucket Cloud Storage. In questo caso, il controllo delle versioni degli oggetti sposta l'oggetto cat.jpg esistente in uno stato non corrente. La versione non corrente conserva la stessa classe di archiviazione e gli stessi metadati che aveva in precedenza. La versione non corrente viene visualizzata solo se esegui un elenco con controllo delle versioni: non viene visualizzata nei normali comandi di elenco. La versione non corrente è ora indicata come: 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 generation, in questo esempio 1360887759327000. Inoltre, riceve i propri metadati e un numero metageneration di 1, il che significa che non contiene i metadati color:black, a meno che non li specifichi. Quando accedi a cat.jpg, o lo modifichi, questa è la versione utilizzata. In alternativa, puoi fare riferimento a questa versione di cat.jpg utilizzando il relativo numero generation. Ad esempio, se utilizzi Google Cloud CLI, devi fare riferimento a cat.jpg#1360887759327000.

Elimini la versione live dell'immagine

Ora elimini cat.jpg. In questo modo, la versione con 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 versioni non attuali utilizzando il relativo numero generation, ma se provi ad accedere a cat.jpg senza un numero generation, l'operazione non va a buon fine.

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

Disattivi il controllo delle versioni degli oggetti

Disattivi il controllo delle versioni degli oggetti, impedendo che gli oggetti diventino non attuali. Le versioni non correnti esistenti degli oggetti rimangono in Cloud Storage. Anche se il controllo delle versioni degli oggetti è disattivato, 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 disattivato, puoi creare una copia di una delle versioni non attuali esistenti, ripristinando così la versione. A questo punto, il bucket ha tre versioni di cat.jpg: le due versioni non correnti e la versione pubblicata 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 nella politica di cancellazione temporanea del bucket. Alla scadenza del periodo di conservazione, Cloud Storage elimina definitivamente la versione dell'oggetto eliminata temporaneamente.

Ripristini una delle versioni degli oggetti eliminati temporaneamente

Anche con il controllo delle versioni degli oggetti disabilitato, puoi ripristinare una versione eliminata temporaneamente di un oggetto non corrente. Viene ripristinata una copia di una versione eliminata temporaneamente 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 per il controllo delle versioni degli oggetti

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

Stato del controllo delle versioni degli oggetti Stato eliminazione temporanea Azione Risultato
Disabilitata Disabilitata
Elimina dog.png. dog.png viene eliminato definitivamente.
Elimina una versione non corrente di dog.png specificando il relativo numero di generazione.1 La versione non corrente viene eliminata definitivamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La versione live precedente viene eliminata definitivamente.
Copia una versione non corrente di dog.png sulla versione pubblicata.1 Una copia della versione non corrente sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La versione live precedente viene eliminata definitivamente.
Disabilitata Abilitata
Elimina dog.png. dog.png è stato eliminato temporaneamente.
Elimina una versione non corrente di dog.png specificando il relativo numero di generazione.1 La versione non corrente viene eliminata temporaneamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La versione live precedente viene eliminata temporaneamente.
Copia una versione non corrente di dog.png sulla versione pubblicata.1 Una copia della versione non corrente sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La versione live precedente viene 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 relativo numero di generazione. La versione live viene eliminata definitivamente.
Elimina una versione non corrente di dog.png specificando il relativo numero di generazione. La versione non corrente viene eliminata definitivamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione pubblicata 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 pubblicata 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 relativo numero di generazione. La versione live viene eliminata temporaneamente.
Elimina una versione non corrente di dog.png specificando il relativo numero di generazione. La versione non corrente viene eliminata temporaneamente.
Sostituisci dog.png con una nuova versione. La nuova versione sostituisce la versione pubblicata 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 pubblicata 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 era stato abilitato il controllo delle versioni degli oggetti per il bucket.

Comportamento di ripristino

Puoi ripristinare in modo efficace una versione non corrente di un oggetto alla versione live corrente. Per una guida passo passo, consulta Ripristino delle versioni non correnti degli oggetti.

Se esegui questa operazione con il controllo delle versioni degli oggetti abilitato, se nel bucket esiste già una versione live dell'oggetto, Cloud Storage sostituisce la versione live esistente, ma la conserva anche come nuova versione non corrente. In questo caso, il bucket contiene l'oggetto sostituito (ora non corrente) e due copie dell'oggetto che in precedenza non era corrente (una copia live 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 o configura la gestione del ciclo di vita degli oggetti per rimuovere gli oggetti non correnti quando soddisfano le condizioni specificate.

Passaggi successivi