Per supportare il recupero di oggetti eliminati o sostituiti, Cloud Storage offre la funzionalità di controllo delle versioni degli oggetti. In questa pagina vengono descritte la funzionalità e le opzioni disponibili quando viene utilizzato.
Introduzione
Abilita il controllo delle versioni degli oggetti per un bucket. Una volta attivata la funzionalità:
Cloud Storage conserva una versione di oggetti non corrente 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 loro numero di generazione.
Le versioni non correnti vengono visualizzate solo nelle richieste che le richiedono esplicitamente di essere incluse.
Puoi eliminare definitivamente le versioni degli oggetti includendo il numero di generazione nella richiesta di eliminazione o utilizzando la Gestione del ciclo di vita degli oggetti.
Le versioni non aggiornate degli oggetti esistono indipendentemente da qualsiasi versione live.
Se disattivi il controllo delle versioni degli oggetti:
Il bucket non accumula più nuove versioni non aggiornate di oggetti.
Le versioni degli oggetti che esistono già nel bucket non sono interessate.
Considerazioni
Il controllo delle versioni degli oggetti non può essere abilitato su un bucket con un criterio di conservazione attualmente impostato.
Non esiste un limite predefinito al numero di versioni dell'oggetto che puoi avere. Il costo di ogni versione non attuale di un oggetto è addebitato alla stessa tariffa di quando era in tempo reale.
Gli addebiti per l'eliminazione anticipata si applicano solo quando una versione dell'oggetto viene rimossa dal bucket, non quando la versione non è più recente. La durata di archiviazione di una versione rimossa da un bucket si basa sulla data in cui è stata aggiunta al bucket e non sul momento in cui non è più aggiornata.
Se abiliti il controllo delle versioni, valuta l'utilizzo della Gestione del ciclo di vita degli oggetti, che può rimuovere le versioni precedenti di un oggetto dopo un determinato periodo di tempo o man mano che le versioni più recenti non vengono aggiornate. Per una possibile configurazione, consulta l'esempio di configurazione dell'eliminazione di oggetti del ciclo di vita.
Metadati degli oggetti non correnti
Le versioni non aggiornate degli oggetti hanno i propri metadati, che potrebbero essere diversi da quelli della versione pubblicata. Soprattutto, una versione non attuale conserva i suoi ACL e non ha necessariamente le stesse autorizzazioni della versione live.
Ogni versione, live o non corrente, ha un insieme di metadati; solo l'ultimo numero di metagenerazione si riferisce ai metadati. I numeri di metagenerazione precedenti non possono essere utilizzati per accedere ai metadati che sono stati modificati.
Puoi aggiornare i metadati per una versione non corrente di un oggetto specificando il rispettivo generation
nella richiesta. Per garantire una semantica sicura di lettura, modifica e scrittura, puoi utilizzare una precondizione di corrispondenza della metagenerazione. L'utilizzo di questa precondizione comporta un errore nell'aggiornamento se i metadati che stai tentando di aggiornare sono stati modificati tra il momento in cui hai letto i metadati e quello in cui hai inviato l'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 abilitato quando sostituisci, aggiorni ed elimini il file.
- Carica una nuova immagine
Quando carichi
cat.jpg
per la prima volta su Cloud Storage, il numero riceve un numerogeneration
e un numerometageneration
. In questo esempio, il numero di generazione è1360887697105000
. Poiché l'oggetto è nuovo, il numerometageneration
è1
.cat.jpg
riceve numerigeneration
emetageneration
anche se il controllo delle versioni degli oggetti non è abilitato. Puoi ottenere questi numeri visualizzando i metadati dell'oggetto.- Abilita il controllo delle versioni degli oggetti
A questo punto decidi di abilitare il controllo delle versioni degli oggetti per il tuo bucket. Ciò non influisce sul numero
generation
ometageneration
dicat.jpg
.- Modifica i metadati dell'immagine
Aggiorni i metadati per
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 rimane invariato, quindi Cloud Storage continua ad archiviare una sola versione dicat.jpg
e la versione continua ad avere un numerogeneration
di1360887697105000
.- Carica una nuova versione dell'immagine
Carica una nuova versione di
cat.jpg
nel tuo bucket Cloud Storage. In questo caso, il controllo delle versioni dell'oggetto sposta l'oggettocat.jpg
esistente in uno stato non attuale. La versione non corrente conserva la stessa classe di archiviazione e i medesimi metadati che aveva in precedenza. La versione non corrente viene visualizzata solo se esegui una scheda con versione: non appare nei normali comandi della scheda. Ora si fa riferimento alla versione non corrente come:cat.jpg#1360887697105000
.Nel frattempo, il
cat.jpg
appena caricato diventa la versione live dell'oggetto. Questo nuovocat.jpg
riceve il proprio numerogeneration
, nell'esempio1360887759327000
. Prende anche i propri metadati e un numerometageneration
di1
, il che significa che non contiene i metadaticolor:black
, a meno che non lo specifichi. Quando accedi acat.jpg,
o modifichi questa è la versione che viene utilizzata. In alternativa, puoi fare riferimento a questa versione dicat.jpg
utilizzando il numerogeneration
. Ad esempio, quando utilizzi l'interfaccia a riga di comando di Google Cloud, ti riferisci acat.jpg#1360887759327000
.- Elimina la versione pubblicata dell'immagine.
Ora elimini
cat.jpg
. In questo caso, la versione con il numero di generazione1360887759327000
non è più aggiornata. Ora il tuo bucket contiene due versioni non correnti dicat.jpg
e nessuna versione pubblicata. Puoi continuare a fare riferimento a una versione non corrente utilizzando il suo numerogeneration
, ma se tenti di 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 del bucket. Per informazioni sull'elenco delle versioni non aggiornate degli oggetti, consulta la sezione Elencare le versioni degli oggetti non correnti.- Disabilita il controllo delle versioni degli oggetti
Puoi disabilitare il controllo delle versioni degli oggetti, impedendo così che gli oggetti diventino non aggiornati. Le versioni non correnti esistenti degli oggetti rimangono in Cloud Storage. Anche se il controllo delle versioni degli oggetti è disabilitato,
cat.jpg#1360887697105000
ecat.jpg#1360887759327000
rimangono archiviati nel bucket finché non li elimini manualmente o tramite la gestione del ciclo di vita degli oggetti.- Ripristina 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 efficacemente la versione. Al termine, il bucket avrà tre versioni di
cat.jpg
: le due versioni non correnti e la versione live generata dal ripristino.
Riferimento per il controllo delle versioni degli oggetti
Questa tabella di riferimento mostra cosa succede quando si eseguono determinate azioni con il controllo delle versioni degli oggetti.
Stato controllo delle versioni degli oggetti | Azione | Risultato |
---|---|---|
Disabilitata | ||
Sostituisci dog.png con una nuova versione. |
La nuova versione sostituisce quella 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 pubblicata.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. | |
Elimina dog.png . |
dog.png è stato eliminato definitivamente. |
|
Elimina una versione non corrente di dog.png specificando il numero di generazione.1 |
La versione non corrente viene eliminata definitivamente. | |
Abilitata | ||
Sostituisci dog.png con una nuova versione. |
La nuova versione sostituisce quella pubblicata e riceve un nuovo numero di generazione. La vecchia versione pubblicata diventa una versione non attuale 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 pubblicata diventa una versione non attuale e mantiene lo stesso numero di generazione. | |
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 live di dog.png specificando il numero di generazione. |
La versione pubblicata viene eliminata definitivamente. | |
Elimina una versione non corrente di dog.png specificando il relativo numero di generazione. |
La versione non corrente viene eliminata definitivamente. |
1 Potrebbe esistere una versione non corrente se in precedenza il controllo delle versioni degli oggetti è stato abilitato nel bucket.
Comportamento di ripristino dei file
Puoi ripristinare di fatto la versione attuale di una versione dell'oggetto non aggiornata. Consulta Ripristinare le versioni degli oggetti non correnti per una guida passo passo per farlo.
Se 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 anche come nuova versione non corrente. In tal caso, il bucket contiene in seguito l'oggetto sostituito (ora non corrente) e due copie dell'oggetto che in precedenza non era corrente (una copia pubblicata e una copia ancora non attuale), tutte soggette a costi di archiviazione. Per evitare addebiti non necessari, elimina la versione non corrente che hai utilizzato per eseguire la copia live corrente oppure configura Gestione del ciclo di vita degli oggetti per rimuovere gli oggetti non correnti quando soddisfano le condizioni specificate.
Passaggi successivi
- Scopri come abilitare il controllo delle versioni degli oggetti.
- Lavora con oggetti non correnti.
- Scopri di più sulle proprietà degli oggetti 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 compatibile con il controllo delle versioni degli oggetti.