

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à.

# Gestione dei contrassegni di eliminazione
<a name="ManagingDelMarkers"></a>

## Configurazione del ciclo di vita per ripulire automaticamente i contrassegni di eliminazione scaduti
<a name="LifecycleDelMarker"></a>

Un contrassegno di eliminazione oggetto scaduto è un elemento in cui tutte le versioni dell'oggetto vengono eliminate e rimane solo un singolo contrassegno di eliminazione. Se la configurazione relativa al ciclo di vita è impostata per eliminare le versioni correnti oppure l'opzione `ExpiredObjectDeleteMarker` è impostata in modo esplicito, Amazon S3 rimuove il contrassegno di eliminazione dell'oggetto scaduto. Per un esempio, consulta [Rimozione dei contrassegni di eliminazione degli oggetti scaduti in un bucket con il controllo delle versioni abilitato](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7). 

## Rimozione dei contrassegni di eliminazione per rendere corrente una versione precedente
<a name="RemDelMarker"></a>

Quando si elimina un oggetto in un bucket che supporta la funzione Controllo delle versioni, tutte le versioni rimangono nel bucket e Amazon S3 crea un contrassegno di eliminazione per l'oggetto. Per annullare l'eliminazione dell'oggetto, è necessario eliminare il contrassegno di eliminazione. Per ulteriori informazioni sulla funzione Controllo delle versioni e sui contrassegni di eliminazione, consulta [Conservazione di più versioni degli oggetti con Controllo delle versioni S3](Versioning.md).

Per eliminare definitivamente un contrassegno di eliminazione occorre includere il suo ID versione nella richiesta `DeleteObject versionId`. La figura seguente mostra una richiesta `DeleteObject versionId` che rimuove definitivamente un contrassegno di eliminazione.

![\[Illustrazione che mostra l'eliminazione di un contrassegno di eliminazione utilizzando il relativo ID versione.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarkerVersioned.png)


L'effetto della rimozione del contrassegno di eliminazione è che una richiesta `GET` semplice non recupererà l'ID versione corrente (121212) dell'oggetto. 

**Nota**  
Se si utilizza una richiesta `DeleteObject` per eliminare un contrassegno di eliminazione (senza specificare l'ID versione del contrassegno), Amazon S3 non elimina il contrassegno, ma `PUTs` inserisce un altro contrassegno di eliminazione.

Per rimuovere un contrassegno di eliminazione con un ID di versione `NULL`, è necessario passare il `NULL` come ID di versione nella richiesta `DeleteObject`. La figura seguente mostra come una semplice richiesta `DeleteObject` effettuata senza un ID di versione, in cui la versione corrente è un marker di eliminazione, non rimuove nulla, ma aggiunge invece un marker di eliminazione ulteriore con un ID di versione univoco (7498372).

![\[Illustrazione che mostra l'eliminazione di un contrassegno di eliminazione utilizzando un ID versione NULL.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarker.png)


## Utilizzo della console S3
<a name="undelete-objects"></a>

Utilizzare la seguente procedura per recuperare gli oggetti eliminati che non sono cartelle dal bucket S3, inclusi gli oggetti che si trovano all'interno di tali cartelle. 

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nell'elenco **Bucket** scegli il nome del bucket desiderato.

1. Per visualizzare un elenco delle **versioni** degli oggetti nel bucket, scegliere l'opzione **List versions (Elenca versioni)**. Verranno visualizzati i contrassegni di eliminazione degli oggetti eliminati. 

   

1. Per annullare l'eliminazione di un oggetto, è necessario eliminare il contrassegno di eliminazione. Selezionare la casella di controllo accanto al **contrassegno di eliminazione** dell'oggetto da recuperare, quindi scegliere **Delete (Elimina)**.

1. Conferma l'eliminazione nella pagina **Delete objects (Elimina oggetti)** .

   1. In **Permanently delete objects?** (Eliminare definitivamente gli oggetti?), specifica **permanently delete**.

   1. Scegliere **Delete objects (Elimina oggetti)**.

**Nota**  
Non puoi utilizzare la console di Amazon S3 per annullare l'eliminazione delle cartelle. È necessario utilizzare il AWS CLI o SDK. Per gli esempi, consulta [Come posso ripristinare un oggetto Amazon S3 eliminato da un bucket con il controllo delle versioni abilitato?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-undelete-configuration/) nel Knowledge Center di AWS .

## Utilizzo di REST API
<a name="delete-marker-rest-api"></a>

**Per rimuovere definitivamente un contrassegno di eliminazione**

1. Impostare `versionId` sull'ID versione del contrassegno di eliminazione che si desidera rimuovere.

1. Inviare una richiesta `DELETE Object versionId`.

**Example - Rimozione di un contrassegno di eliminazione**  
Il seguente esempio consente di rimuovere il contrassegno di eliminazione della versione budget 4857693 di `photo.gif`.  

```
1. DELETE /photo.gif?versionId=4857693 HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Quando si elimina un contrassegno di eliminazione, Amazon S3 include nella risposta:

```
1. 204 NoContent 
2. x-amz-version-id: versionID 
3. x-amz-delete-marker: true
```

## Usando il AWS SDKs
<a name="remove-delete-marker-examples-sdk"></a>

Per informazioni sull'utilizzo di altri AWS SDKs, consulta il [AWS Developer Center](https://aws.amazon.com/code/).

------
#### [ Python ]

Nell'esempio di codice Python seguente viene illustrato come rimuovere un marker di eliminazione da un oggetto, rendendo quindi la versione non corrente più recente la versione corrente dell'oggetto.

```
def revive_object(bucket, object_key):
    """
    Revives a versioned object that was deleted by removing the object's active
    delete marker.
    A versioned object presents as deleted when its latest version is a delete marker.
    By removing the delete marker, we make the previous version the latest version
    and the object then presents as *not* deleted.

    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 revive.
    """
    # Get the latest version for the object.
    response = s3.meta.client.list_object_versions(
        Bucket=bucket.name, Prefix=object_key, MaxKeys=1
    )

    if "DeleteMarkers" in response:
        latest_version = response["DeleteMarkers"][0]
        if latest_version["IsLatest"]:
            logger.info(
                "Object %s was indeed deleted on %s. Let's revive it.",
                object_key,
                latest_version["LastModified"],
            )
            obj = bucket.Object(object_key)
            obj.Version(latest_version["VersionId"]).delete()
            logger.info(
                "Revived %s, active version is now %s  with body '%s'",
                object_key,
                obj.version_id,
                obj.get()["Body"].read(),
            )
        else:
            logger.warning(
                "Delete marker is not the latest version for %s!", object_key
            )
    elif "Versions" in response:
        logger.warning("Got an active version for %s, nothing to do.", object_key)
    else:
        logger.error("Couldn't get any version info for %s.", object_key)
```

------