Come funzionano il Controllo delle versioni S3 - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come funzionano il Controllo delle versioni S3

Puoi utilizzare il controllo delle versioni S3 per mantenere più versioni di un oggetto in un unico bucket e ripristinare gli oggetti che vengono accidentalmente eliminati o sovrascritti. Ad esempio, se applichi il controllo delle versioni S3 a un bucket, si verificano le seguenti modifiche:

  • Se anziché rimuovere un oggetto in modo permanente lo elimini, Amazon S3 inserisce un contrassegno di eliminazione che diventa la versione corrente dell'oggetto. È quindi possibile ripristinare la versione precedente. Per ulteriori informazioni, consulta Eliminazione di versioni di oggetti da un bucket con funzione Controllo delle versioni abilitata.

  • Se sovrascrivi un oggetto, Amazon S3 aggiunge una nuova versione dell'oggetto nel bucket. La versione precedente rimane nel bucket e diventa una versione non corrente. Puoi ripristinare la versione precedente.

Nota

A ogni versione archiviata e trasferita di un oggetto si applicano le tariffe Amazon S3 normali. Ogni versione di un oggetto è l'intero oggetto e non la sua versione precedente con qualche differenza. Per questo motivo, se sono presenti tre versioni di un oggetto memorizzate verranno addebitati tre oggetti.

A ogni bucket S3 creato è associata una sottorisorsa per la funzione Controllo delle versioni. (Per ulteriori informazioni, consulta Opzioni di configurazione dei bucket.) Per impostazione predefinita, il bucket è senza versione, di conseguenza la sottorisorsa per la funzione Controllo delle versioni archivia una configurazione vuota della funzione Controllo delle versioni.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

Per abilitare il controllo delle versioni, puoi inviare una richiesta ad Amazon S3 con una configurazione del controllo delle versioni con lo stato Enabled.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

Per sospendere la funzione Controllo delle versioni, si imposterà il valore dello stato su Suspended.

Nota

Quando abiliti il controllo delle versioni in un bucket per la prima volta, potrebbe essere necessario un breve periodo di tempo per la propagazione completa della modifica. Ti consigliamo di attendere 15 minuti dopo aver abilitato il controllo delle versioni prima di eseguire operazioni di scrittura (PUT o DELETE) sugli oggetti nel bucket.

Il proprietario del bucket e tutti gli utenti autorizzati AWS Identity and Access Management (IAM) possono abilitare il controllo delle versioni. Il proprietario del bucket è colui Account AWS che ha creato il bucket. Per ulteriori informazioni sulle autorizzazioni, consultare Identity and Access Management per Amazon S3.

Per ulteriori informazioni sull'attivazione e la disabilitazione del controllo delle versioni di S3 utilizzando l'API AWS Management Console, AWS Command Line Interface (AWS CLI) o REST, consulta. Abilitazione della funzione Controllo delle versioni sui bucket

ID versione

Se si abilita la funzione Controllo delle versioni del bucket, Amazon S3 genera automaticamente un ID versione univoco per l'oggetto archiviato. Ad esempio, un bucket può contenere due oggetti con la stessa chiave (nome dell'oggetto) ma ID versione diverso, ad esempio photo.gif (versione 111111) e photo.gif (versione 121212).

Diagramma che mostra un bucket abilitato al controllo delle versioni con due oggetti con la stessa chiave ma ID di versione diversi.

Ogni oggetto ha un ID versione, indipendentemente dal fatto che Controllo delle versioni S3 sia abilitato o meno. Se il controllo delle versioni S3 non è abilitato, Amazon S3 imposta il valore dell'ID versione su null. Se si attiva la funzione Controllo delle versioni S3, Amazon S3 assegna un valore ID versione per l'oggetto. Questo valore distingue l'oggetto dalle altre versioni della stessa chiave.

Quando si attiva la funzione Controllo delle versioni S3 in un bucket esistente, gli oggetti già archiviati nel bucket rimangono invariati. Gli ID versione (null), il contenuto e le autorizzazioni non sono cambiati. Dopo aver abilitato il controllo delle versioni S3, ogni oggetto aggiunto al bucket ottiene un ID versione che lo distingue dalle altre versioni della stessa chiave.

Solo Amazon S3 genera gli ID versione che non possono essere modificati. Gli ID di versione sono stringhe opache codificate in Unicode, UTF-8, pronte per l'URL, non lunghe più di 1.024 byte. Di seguito è riportato un esempio:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

Nota

Per semplicità, gli altri esempi in questo argomento utilizzano ID molto più brevi.

Flussi di lavoro per la funzione Controllo delle versioni

Se si esegue l'operazione PUT su un oggetto in un bucket abilitato per il controllo delle versioni, la versione non corrente non viene sovrascritta. Come mostrato nella seguente figura, quando viene eseguita un'operazione PUT per una nuova versione di photo.gif in un bucket che già contiene un oggetto con lo stesso nome:

  • L'oggetto originale (ID = 111111) rimane nel bucket.

  • Amazon S3 genera un nuovo ID versione (121212) e aggiunge nel bucket questa versione più recente dell'oggetto.

Diagramma che mostra il funzionamento del controllo delle versioni S3 quando si esegue l'operazione PUT per un oggetto in un bucket con il controllo delle versioni abilitato.

Con questa funzionalità è possibile recuperare la versione precedente di un oggetto che è stato accidentalmente sovrascritto o eliminato.

Quando esegui l'operazione DELETE per un oggetto, tutte le versioni rimangono nel bucket e Amazon S3 inserisce un contrassegno di eliminazione, come mostrato nell'illustrazione seguente.

Illustrazione che mostra l'inserimento di un marker di eliminazione.

Il contrassegno di eliminazione diventa la versione corrente dell'oggetto. Per default, le richieste GET recuperano la versione più recente archiviata. L'esecuzione di una richiesta GET Object quando la versione corrente è un contrassegno di eliminazione restituisce un errore 404 Not Found, come mostrato nell'illustrazione seguente.

Illustrazione che mostra una GetObject chiamata per un marker di eliminazione che restituisce un errore 404 (Not Found).

È possibile, tuttavia, eseguire un'operazione GET su una versione non corrente di un oggetto specificando l'ID versione corrispondente. Nell'illustrazione seguente viene eseguita un'operazione GET su una versione specifica dell'oggetto (111111). Amazon S3 restituisce la versione dell'oggetto anche se non è la versione corrente.

Per ulteriori informazioni, consulta Recupero delle versioni degli oggetti da un bucket con funzione Controllo delle versioni abilitata.

Diagramma che illustra come funziona il controllo delle versioni S3 quando si esegue l'operazione GET per una versione non corrente in un bucket con il controllo delle versioni abilitato.

È possibile eliminare in modo permanente un oggetto specificando la versione che si desidera eliminare. Solo il proprietario di un bucket Amazon S3 o un utente IAM autorizzato può eliminare definitivamente una versione. Se l'operazione DELETE specifica versionId, la versione dell'oggetto viene eliminata definitivamente e Amazon S3 non inserisce un contrassegno di eliminazione.

Diagramma che mostra come elimina DELETE versionId definitivamente una versione specifica dell'oggetto.

Puoi aggiungere un ulteriore livello di sicurezza configurando un bucket per abilitare l'eliminazione con autenticazione a più fattori (MFA). Quando abiliti l'eliminazione MFA per un bucket, il proprietario del bucket deve includere due tipi di autenticazione in qualsiasi richiesta per eliminare una versione o modificare lo stato del controllo delle versioni del bucket. Per ulteriori informazioni, consulta Configurazione dell'eliminazione di MFA.

Quando vengono create nuove versioni per un oggetto?

Le nuove versioni vengono create solo quando esegui l'operazione PUT per un nuovo oggetto. Tieni presente che alcune azioni, come CopyObject, funzionano implementando un'operazione PUT.

Alcune azioni che modificano l'oggetto corrente non creano una nuova versione perché non eseguono l'operazione PUT di un nuovo oggetto. Ciò include azioni come la modifica dei tag su un oggetto.

Importante

Se rilevi un aumento significativo nel numero di risposte HTTP 503 (servizio non disponibile) ricevute per le richieste PUT o DELETE di Amazon S3 in un bucket con il controllo delle versioni S3 abilitato, è possibile che esistano uno o più oggetti nel bucket per i quali sono presenti milioni di versioni. Per ulteriori informazioni, consulta la sezione sul controllo delle versioni S3 in Risoluzione dei problemi.