Eliminazione di versioni di oggetti da un bucket con funzione Controllo delle versioni abilitata - Amazon Simple Storage Service

Eliminazione di versioni di oggetti da un bucket con funzione Controllo delle versioni abilitata

È possibile eliminare le versioni degli oggetti dai bucket Amazon S3 ogni volta che si desidera. Si possono anche definire regole di configurazione del ciclo di vita per oggetti con un ciclo di vita ben definito per fare in modo che Amazon S3 forzi la scadenza delle versioni correnti di un oggetto o che rimuova le versioni dell'oggetto non correnti in modo permanente. Se il bucket ha la funzione Controllo delle versioni abilitata o sospesa, le operazioni di configurazione del ciclo di vita agiscono nel modo seguente:

  • L'operazione Expiration si applica alla versione corrente dell'oggetto. Anziché eliminare la versione corrente dell'oggetto, Amazon S3 la conserva come versione non corrente aggiungendo un contrassegno di eliminazione, che quindi diventa la versione corrente.

  • L'operazione NoncurrentVersionExpiration si applica solo alle versioni non correnti di un oggetto e Amazon S3 rimuove queste versioni in modo permanente. Non è possibile ripristinare gli oggetti rimossi in modo permanente.

Per ulteriori informazioni, consultare Gestione del ciclo di vita dello storage.

Eliminare casi di utilizzo delle richieste

Una richiesta DELETE può essere usata nei seguenti casi d'uso:

  • Quando la funzione Controllo delle versioni è abilitata, un semplice DELETE non può eliminare un oggetto in modo permanente. Invece di eliminare l'oggetto, Amazon S3 inserisce un contrassegno di eliminazione nel bucket e tale contrassegno diventa la versione corrente dell'oggetto, con un nuovo ID.

    Quando si prova a utilizzare la funzione GET di un oggetto la cui versione corrente è un contrassegno di eliminazione, Amazon S3 si comporta come se l'oggetto fosse stato eliminato (anche se non è stato cancellato) e restituisce un errore 404. Per ulteriori informazioni, consultare Utilizzo dei contrassegni di eliminazione.

    La figura seguente mostra una richiesta DELETE semplice che non rimuove effettivamente l'oggetto specificato. Anziché rimuovere l'oggetto, Amazon S3 inserisce un contrassegno di eliminazione.

  • Per eliminare oggetti con versione in modo permanente occorre usare DELETE Object versionId.

    La figura seguente mostra una richiesta che l'eliminazione della versione specificata di un oggetto rimuove tale oggetto in modo permanente.

Per eliminare le versioni degli oggetti

Puoi eliminare le versioni degli oggetti in Amazon S3 utilizzando la console, gli SDK AWS, REST API o la AWS Command Line Interface.

  1. Accedi alla AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nell'elenco Buckets (Bucket) scegliere il nome del bucket contenente l'oggetto.

  3. Nell'elenco Oggetti scegliere il nome dell'oggetto.

  4. Scegliere le Versioni.

    Amazon S3 mostra tutte le versioni per l'oggetto.

  5. Seleziona la casella di controllo accanto a Version ID (ID versione) per le versioni che desideri recuperare.

  6. Scegliere Delete (Elimina).

  7. In Eliminare definitivamente gli oggetti? , immettere permanently delete.

    avvertimento

    Quando si elimina definitivamente una versione di un oggetto, l'azione non può essere annullata.

  8. Scegliere Delete objects (Elimina oggetti).

    Amazon S3 elimina la versione dell'oggetto.

Per esempi di eliminazione di oggetti con gli SDK AWS per Java, .NET e PHP, consultare Eliminazione di oggetti Amazon S3 . Gli esempi per l'eliminazione di oggetti in bucket senza versione e con funzione Controllo delle versioni abilitata sono gli stessi. Tuttavia, per i bucket con funzione Controllo delle versioni abilitata, Amazon S3 assegna un numero di versione. Negli altri casi il numero di versione è null.

Per informazioni sull'utilizzo di altri SDK AWS, consulta il Centro sviluppatori di AWS.

Python

Per istruzioni su come creare e testare un esempio di utilizzo, consulta Utilizzo di AWS SDK for Python (Boto).

Nell'esempio di codice Python seguente viene illustrata l'eliminazione permanente di un oggetto con versione eliminando tutte le sue versioni.

def permanently_delete_object(bucket, object_key): """ Permanently deletes a versioned object by deleting all of its versions. Usage is shown in the usage_demo_single_object function at the end of this module. :param bucket: The bucket that contains the object. :param object_key: The object to delete. """ try: bucket.object_versions.filter(Prefix=object_key).delete() logger.info("Permanently deleted all versions of object %s.", object_key) except ClientError: logger.exception("Couldn't delete all versions of %s.", object_key) raise
Per eliminare la versione specificata di un oggetto
  • In una richiesta DELETE, specificare l'ID versione.

Esempio - Eliminazione di una versione specifica

Nell'esempio seguente viene eliminata la versione UIORUnfnd89493jJFJ di photo.gif.

DELETE /photo.gif?versionId=UIORUnfnd89493jJFJ HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 0

Il comando seguente elimina un oggetto denominato test.txt da un bucket denominato DOC-EXAMPLE-BUCKET1. Per rimuovere una versione specifica di un oggetto, devi essere il proprietario del bucket e utilizzare la risorsa secondaria ID versione.

aws s3api delete-object --bucket DOC-EXAMPLE-BUCKET1 --key test.txt --version-id versionID

Per ulteriori informazioni, su delete-object consulta delete-object nella Guida di riferimento dei comandi AWS CLI.

Per ulteriori informazioni sull'eliminazione delle versioni degli oggetti, consulta gli argomenti riportati di seguito.