Il controllo delle versioni degli oggetti conserva gli oggetti eliminati come oggetti non correnti con controllo delle versioni che rimangono accessibili nel bucket finché 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 durante l'utilizzo.
Ti consigliamo di utilizzare l'eliminazione soft instead of Object Versioning per proteggerti dalla perdita permanente dei dati a causa di eliminazioni accidentali o da parte di malintenzionati. Per scoprire di più su quando utilizzare l'eliminazione soft e il controllo delle versioni degli oggetti, consulta la sezione Considerazioni.
Introduzione
Attiva il controllo delle versioni degli oggetti per un bucket. Una volta attivata:
Cloud Storage conserva una versione non corrente dell'oggetto ogni volta che sostituisci o elimini una versione dell'oggetto live, a condizione che non specifichi il numero di generazione della versione live.
Le versioni non correnti mantengono il nome dell'oggetto, ma sono identificate in modo univoco dal numero di generazione.
Le versioni non correnti 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 al termine 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à esistenti nel bucket non sono interessate.
Considerazioni
Non esiste un limite predefinito al numero di versioni degli oggetti che puoi avere. A ogni versione non corrente di un oggetto viene addebitato lo stesso importo applicato quando era attiva.
I costi di eliminazione anticipata si applicano solo quando una versione dell'oggetto viene rimossa dal bucket, non quando la versione diventa non aggiornata. La durata dell'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, ti consigliamo di utilizzare la Gestione del ciclo di vita degli oggetti, che può rimuovere le versioni precedenti di un oggetto dopo un determinato periodo di tempo o quando le versioni più recenti diventano non aggiornate. Per una possibile configurazione, consulta l'esempio di configurazione del ciclo di vita per l'eliminazione degli oggetti.
Per determinare se attivare il controllo delle versioni degli oggetti o l'eliminazione soft nel tuo bucket, tieni presente quanto segue:
Se vuoi evitare la perdita permanente dei dati a causa di 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 correnti eliminati di recente. Inoltre, può proteggere dalle eliminazioni a livello di bucket.
Se hai requisiti di fatturazione specifici e hai configurato le 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 caso, la protezione dalle eliminazioni accidentali è solo parziale perché il controllo delle versioni degli oggetti non protegge dagli eventi a livello di bucket o dalle eliminazioni indesiderate di oggetti non aggiornati.
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 definitivamente richiede autorizzazioni IAM specifiche disponibili per il ruolo IAM Amministratore Storage (
roles/storage.admin
).Se vuoi accedere agli oggetti eliminati più di recente e a un livello elevato di protezione contro la perdita permanente dei dati a causa di eventi di eliminazione accidentali e dannosi, puoi attivare il controllo delle versioni degli oggetti e l'eliminazione temporanea nello stesso bucket. Puoi configurare il criterio di gestione del ciclo di vita degli oggetti in modo da eliminare automaticamente le versioni non correnti dopo un numero specifico di giorni, quindi utilizzare l'eliminazione soft 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 live. Soprattutto, una versione non corrente conserva le proprie ACL e non ha necessariamente le stesse autorizzazioni della versione pubblicata.
Ogni versione, sia pubblicata che non corrente, ha un insieme di metadati; solo il numero di generazione dei metadati più recente fa riferimento ai metadati. I numeri di metagenerazione meno recenti non possono essere utilizzati per accedere ai metadati che sono stati modificati in seguito.
Puoi aggiornare i metadati di una versione non corrente di un oggetto specificandone il
generation
nella richiesta. Per garantire una semantica sicura di lettura, modifica e scrittura, puoi utilizzare una precondizione di corrispondenza della metagenerazione. L'utilizzo di questo prerequisito 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 li hai letti e l'invio dell'aggiornamento.
Esempio di controllo delle versioni degli oggetti
Questo esempio mostra cosa succede al file cat.jpg
in un bucket con il controllo delle versioni degli oggetti e l'eliminazione soft abilitati quando sostituisci, aggiorni ed elimini il file.
- Carichi una nuova immagine
Quando carichi
cat.jpg
per la prima volta su Cloud Storage, riceve un numerogeneration
e un numerometageneration
. In questo esempio, il numero di generazione è1360887697105000
. Poiché l'oggetto è nuovo, il numerometageneration
è1
.cat.jpg
riceve i numerigeneration
emetageneration
anche se il controllo delle versioni degli oggetti non è abilitato. Puoi ottenere questi numeri visualizzando i metadati degli oggetti.- Attiva 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 sui numeri
generation
ometageneration
dicat.jpg
.- Modificare i metadati dell'immagine
Aggiorna i metadati di
cat.jpg
aggiungendo metadati personalizzati:color:black
. L'aggiornamento dei metadati fa aumentare il valoremetageneration
dicat.jpg
, in questo caso da1
a2
. Tuttavia, l'oggetto stesso rimane invariato, pertanto Cloud Storage continua a memorizzare una sola versione dicat.jpg
e la versione continua ad avere un numerogeneration
di1360887697105000
.- Carichi una nuova versione dell'immagine
Carichi una nuova versione di
cat.jpg
nel tuo bucket Cloud Storage. In questo modo, il controllo delle versioni degli oggetti sposta l'oggettocat.jpg
esistente in un stato non corrente. La versione non corrente mantiene la stessa classe di archiviazione e gli stessi metadati di cui disponeva in precedenza. La versione non corrente viene visualizzata solo se esegui una scheda con versione: non viene visualizzata nei normali comandi della scheda. Ora la versione non corrente viene indicata come:cat.jpg#1360887697105000
.Nel frattempo,
cat.jpg
appena caricato diventa la versione live dell'oggetto. Questo nuovocat.jpg
riceve il proprio numerogeneration
, in questo caso1360887759327000
. Riceve anche i propri metadati e unmetageneration
numero di1
, il che significa che non contiene i metadaticolor:black
a meno che tu non lo specifichi. Quando accedi o modifichicat.jpg,
, viene utilizzata questa versione. In alternativa, puoi fare riferimento a questa versione dicat.jpg
utilizzando il numerogeneration
. Ad esempio, quando utilizzi Google Cloud CLI, lo chiameraicat.jpg#1360887759327000
.- Elimini la versione in tempo reale dell'immagine
Ora elimini
cat.jpg
. In questo modo, la versione con il numero di generazione1360887759327000
diventa non corrente. Ora il tuo bucket contiene due versioni non correnti dicat.jpg
e nessuna versione attiva. Puoi ancora fare riferimento a una delle versioni non correnti utilizzando il relativo numerogeneration
, ma se provi ad accedere acat.jpg
senza un numerogeneration
, l'operazione non andrà a buon fine.Analogamente, un normale elenco di oggetti del bucket non mostrerà
cat.jpg
come uno degli oggetti al suo interno. Per informazioni sull'elenco delle versioni non aggiornate degli oggetti, consulta Elenco delle versioni non aggiornate degli oggetti.- Disattivi il controllo delle versioni degli oggetti
Disattivi il controllo delle versioni degli oggetti, impedendo agli oggetti di diventare non aggiornati. Le versioni non correnti esistenti degli oggetti rimangono in Cloud Storage. Anche se la versione degli oggetti è disattivata,
cat.jpg#1360887697105000
ecat.jpg#1360887759327000
rimangono memorizzati nel tuo bucket finché non li elimini.- Ripristina una delle versioni non correnti
Anche con il controllo delle versioni degli oggetti disattivato, puoi creare una copia di una delle versioni non correnti esistenti, che ripristina effettivamente la versione. A questo punto, il bucket avrà tre versioni di
cat.jpg
: le due versioni non correnti e la versione live risultante 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
, 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. Alla scadenza del periodo di conservazione, Cloud Storage elimina definitivamente la versione eliminata temporaneamente di questo oggetto.- Ripristina una delle versioni dell'oggetto eliminato 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 definitivamente viene ripristinata come versione attiva con nuovi metadati dell'oggetto e una nuova data di creazione. Anche l'oggetto eliminato temporaneamente originale rimane nel bucket e viene eliminato definitivamente al termine 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 la funzionalità Object Versioning.
Stato del controllo delle versioni degli oggetti | Stato di eliminazione temporanea | Azione | Risultato |
---|---|---|---|
Disabilitata | Disabilitata | ||
Elimina dog.png . |
dog.png viene eliminato definitivamente. |
||
Elimina una versione non corrente di dog.png specificandone il 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 vecchia versione pubblicata viene eliminata definitivamente. | ||
Copia una versione non corrente di dog.png sulla versione in tempo reale.1 |
Una copia della versione non corrente sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La vecchia versione pubblicata viene eliminata definitivamente. | ||
Disabilitata | Abilitata | ||
Elimina dog.png . |
dog.png è stato eliminato temporaneamente. |
||
Elimina una versione non corrente di dog.png specificandone il 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 vecchia versione live viene eliminata temporaneamente. | ||
Copia una versione non corrente di dog.png sulla versione in tempo reale.1 |
Una copia della versione non corrente sostituisce la versione pubblicata e riceve un nuovo numero di generazione. La vecchia versione live viene eliminata temporaneamente. | ||
Abilitata | Disabilitata | ||
Elimina la versione pubblicata 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 pubblicata di dog.png specificandone il numero di generazione. |
La versione live viene eliminata definitivamente. | ||
Elimina una versione non corrente di dog.png specificandone il 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 vecchia versione live 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 vecchia versione live diventa una versione non corrente e mantiene lo stesso numero di generazione. | ||
Abilitata | Abilitata | ||
Elimina la versione pubblicata 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 pubblicata di dog.png specificandone il numero di generazione. |
La versione pubblicata è stata eliminata temporaneamente. | ||
Elimina una versione non corrente di dog.png specificandone il 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 vecchia versione live 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 vecchia versione live 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 del ripristino dei file
Puoi ripristinare efficacemente una versione non corrente dell'oggetto nella versione live corrente. Per una guida passo passo su come eseguire questa operazione, consulta Ripristinare le versioni non correnti degli oggetti.
Se esegui questa operazione con il controllo delle versioni degli oggetti abilitato, se esiste già una versione live dell'oggetto nel bucket, Cloud Storage la sostituisce, ma la conserva anche come nuova versione non corrente. In questo caso, il bucket contiene successivamente 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 con costi di archiviazione. Per evitare addebiti non necessari, elimina la versione non corrente utilizzata per creare la copia attiva corrente o configura Gestione del ciclo di vita degli oggetti per rimuovere gli oggetti non correnti quando soddisfano le condizioni specificate.
Passaggi successivi
- Scopri come attivare il controllo delle versioni degli oggetti.
- Lavorare con oggetti non correnti.
- Scopri di più sulle proprietà degli oggetti generation e metageneration.
- Scopri di più sulla Gestione del ciclo di vita degli oggetti, che ti consente di gestire automaticamente le versioni degli oggetti.
- Guarda un esempio di gestione del ciclo di vita degli oggetti che funziona con la versione degli oggetti.