Il controllo delle versioni degli oggetti conserva gli oggetti eliminati come oggetti con controllo delle versioni e non correnti 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
Abiliti il controllo delle versioni degli oggetti per un bucket. Una volta abilitato:
Cloud Storage conserva una versione non corrente dell'oggetto ogni volta che sostituisci o elimini una versione live dell'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 relativo numero di generazione.
Le versioni non correnti vengono visualizzate solo nelle richieste che ne richiedono esplicitamente l'inclusione.
Elimini 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 dopo la scadenza del periodo di conservazione dell'eliminazione temporanea.
Le versioni non correnti degli oggetti esistono indipendentemente da qualsiasi versione live.
Se disabiliti 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. A ogni versione non corrente di un oggetto viene applicata la stessa tariffa della versione live.
Gli addebiti 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 dell'archiviazione per 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 abiliti 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 degli oggetti.
Per determinare se abilitare il controllo delle versioni degli oggetti o l'eliminazione temporanea nel bucket, tieni presente 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 fornisce protezione a livello di bucket conservando tutti gli oggetti live o non correnti eliminati di recente. Può anche 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 degli 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 elevato livello di protezione dalla perdita permanente di dati dovuta a eventi di eliminazione accidentali e dannosi, puoi abilitare 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 in modo che elimini automaticamente le versioni non correnti dopo un numero specifico di giorni e poi utilizzare l'eliminazione temporanea per fornire un ulteriore livello di protezione.
Metadati degli oggetti non correnti
Le versioni non correnti degli oggetti hanno metadati propri, che potrebbero differire dai metadati della versione live. Ancora più importante, una versione non corrente conserva le relative ACL e non necessariamente ha le stesse autorizzazioni della versione live.
Ogni versione, live o non corrente, ha un insieme di metadati; solo il numero di metagenerazione più recente si riferisce ai metadati. I numeri di metagenerazione precedenti non possono essere utilizzati per accedere ai metadati che sono stati modificati da allora.
Puoi aggiornare i metadati di una versione non corrente di un oggetto specificandone la 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 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 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 per la prima volta
cat.jpgin Cloud Storage, riceve ungenerationnumero e unmetagenerationnumero. In questo esempio, il numero di generazione è1360887697105000. Poiché l'oggetto è nuovo, il numero dimetagenerationè1.cat.jpgriceve numeri digenerationemetagenerationanche se il controllo delle versioni degli oggetti non è abilitato. Puoi ottenere questi numeri visualizzando i metadati dell'oggetto.- Abiliti il controllo delle versioni degli oggetti
A questo punto, decidi di abilitare il controllo delle versioni degli oggetti per il bucket. Questa operazione non influisce sui numeri
generationometagenerationdicat.jpg.- Modifichi i metadati dell'immagine
Aggiorni i metadati di
cat.jpgaggiungendo metadati personalizzati:color:black. L'aggiornamento dei metadati fa aumentare il valore dimetagenerationdicat.jpg, in questo caso da1a2. Tuttavia, l'oggetto stesso rimane invariato, quindi Cloud Storage continua ad archiviare una sola versione dicat.jpge la versione continua ad avere un numero digenerationpari a1360887697105000.- Carichi una nuova versione dell'immagine
Carichi una nuova versione di
cat.jpgnel bucket Cloud Storage. Quando lo fai, il controllo delle versioni degli oggetti sposta l'oggettocat.jpgesistente 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 comandi di elenco normali. Ora si fa riferimento alla versione non corrente come:cat.jpg#1360887697105000.Nel frattempo,
cat.jpgappena caricato diventa la versione live dell'oggetto. Questo nuovocat.jpgottiene il proprio numero digeneration, in questo esempio1360887759327000. Ottiene anche i propri metadati e un numero dimetagenerationpari a1, il che significa che non contiene i metadaticolor:blacka meno che non li specifichi. Quando accedi o modifichicat.jpg,viene utilizzata questa versione. In alternativa, puoi fare riferimento a questa versione dicat.jpgutilizzando il relativo numero digeneration. Ad esempio, quando utilizzi la Google Cloud CLI, devi fare riferimento acat.jpg#1360887759327000.- Elimini la versione live dell'immagine
Ora elimini
cat.jpg. Quando lo fai, la versione con il numero di generazione1360887759327000diventa non corrente. Ora il bucket contiene due versioni non correnti dicat.jpge nessuna versione live. Puoi comunque fare riferimento a una delle versioni non correnti utilizzando il relativo numero digeneration, ma se provi ad accedere acat.jpgsenza un numero digeneration, l'operazione non va a buon fine.Allo stesso modo, un elenco di oggetti normale del bucket non mostrerà
cat.jpgcome uno degli oggetti nel bucket. Per informazioni sull'elenco delle versioni non correnti degli oggetti, consulta Elencare le versioni non correnti degli oggetti.- Disabiliti il controllo delle versioni degli oggetti
Disabiliti il controllo delle versioni degli oggetti, che impedisce agli oggetti di diventare non correnti. Le versioni non correnti esistenti degli oggetti rimangono in Cloud Storage. Anche se il controllo delle versioni degli oggetti è disabilitato,
cat.jpg#1360887697105000ecat.jpg#1360887759327000rimangono archiviati nel bucket fino a quando 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 correnti esistenti, che ripristina effettivamente la versione. A questo punto, il bucket ha tre versioni di
cat.jpg: le due versioni non correnti e la versione live derivante 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 nella policy di eliminazione temporanea del bucket. Al termine della durata di conservazione, Cloud Storage elimina definitivamente la versione eliminata temporaneamente di questo oggetto.- Ripristini una delle versioni dell'oggetto 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. L'oggetto originale eliminato temporaneamente rimane anche nel bucket e viene eliminato definitivamente dopo la 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 del controllo delle versioni degli oggetti | Stato dell'eliminazione temporanea | Azione | Risultato |
|---|---|---|---|
| Disabilitato | Disabilitato | ||
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 live e riceve un nuovo numero di generazione. La vecchia versione live viene eliminata definitivamente. | ||
Copia una versione non corrente di dog.png sulla versione live.1 |
Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La vecchia versione live viene eliminata definitivamente. | ||
| Disabilitato | Abilitato | ||
Elimina dog.png. |
dog.png viene 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 live e riceve un nuovo numero di generazione. La vecchia versione live viene eliminata temporaneamente. | ||
Copia una versione non corrente di dog.png sulla versione live.1 |
Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La vecchia versione live viene eliminata temporaneamente. | ||
| Abilitato | Disabilitato | ||
Elimina la versione live di dog.png senza specificare il relativo 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 live 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 live. |
Una copia della versione non corrente sostituisce la versione live e riceve un nuovo numero di generazione. La vecchia versione live diventa una versione non corrente e mantiene lo stesso numero di generazione. | ||
| Abilitato | Abilitato | ||
Elimina la versione live di dog.png senza specificare il relativo 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 live 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 live. |
Una copia della versione non corrente sostituisce la versione live 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 era abilitato il controllo delle versioni degli oggetti nel bucket.
Comportamento di ripristino
Puoi ripristinare efficacemente una versione non corrente dell'oggetto alla versione live corrente. Per una guida passo passo, consulta Ripristinare le versioni non correnti degli oggetti.
Quando 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 era non 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 oppure configura la gestione del ciclo di vita degli oggetti in modo che rimuova gli oggetti non correnti quando soddisfano le condizioni specificate.
Passaggi successivi
- Scopri come abilitare il controllo delle versioni degli oggetti.
- Utilizza gli oggetti non correnti.
- Scopri di più sulle proprietà degli oggetti di generazione e metagenerazione.
- Scopri di più sulla gestione del ciclo di vita degli oggetti, che ti consente di gestire automaticamente le versioni degli oggetti.
- Consulta un esempio di gestione del ciclo di vita degli oggetti che funziona con il controllo delle versioni degli oggetti.