

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

# Recupero delle versioni degli oggetti da un bucket con funzione Controllo delle versioni abilitata
<a name="RetrievingObjectVersions"></a>

La funzione Controllo delle versioni in Amazon S3 è un modo per mantenere più varianti di un oggetto nello stesso bucket. Una richiesta `GET` semplice consente di recuperare la versione corrente di un oggetto. La figura seguente mostra come `GET` restituisce la versione corrente dell'oggetto, `photo.gif`.

![\[Illustrazione che mostra come GET restituisce la versione corrente dell'oggetto.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_GET_NoVersionID.png)


Per recuperare una specifica versione occorre indicare l'ID versione. La figura seguente mostra una richiesta `GET versionId` che restituisce la versione specificata dell'oggetto (che non è necessariamente la versione corrente).

![\[Illustrazione che mostra come una richiesta GET versionId consenta di recuperare la versione specificata dell'oggetto.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_GET_Versioned.png)


Puoi recuperare le versioni degli oggetti in Amazon S3 utilizzando la console o l'API AWS SDKs REST.

**Nota**  
 Per accedere a versioni di oggetti precedenti a 300 versioni, è necessario utilizzare la AWS CLI o l'URL dell'oggetto.

## Utilizzo della console S3
<a name="retrieving-object-versions"></a>

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 **Buckets (Bucket)** scegliere il nome del bucket contenente l'oggetto.

1. Nell'elenco **Oggetti** scegliere il nome dell'oggetto.

1. Scegliere le **Versioni**.

   Amazon S3 mostra tutte le versioni per l'oggetto.

1. Selezionare la casella di controllo accanto all' **ID versione** per le versioni che si desidera recuperare.

1. Scegliere **Azioni**, scegliere **Scarica**e salvare l'oggetto.

È anche possibile visualizzare, scaricare ed eliminare le versioni degli oggetti nel pannello di panoramica sull'oggetto. Per ulteriori informazioni, consulta [Visualizzazione delle proprietà di un oggetto nella console di Amazon S3](view-object-properties.md).

**Importante**  
È possibile annullare l'eliminazione di un oggetto solo se è stato eliminato come ultima versione (corrente). Non è possibile annullare l'eliminazione della versione precedente di un oggetto eliminato. Per ulteriori informazioni, consulta [Conservazione di più versioni degli oggetti con Controllo delle versioni S3](Versioning.md).

## Utilizzando il AWS SDKs
<a name="retrieve-obj-version-sdks"></a>

Gli esempi per il caricamento 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 esempi di download di oggetti utilizzando AWS SDKs Java, .NET e PHP, vedete [Download di oggetti](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

Per esempi di come elencare la versione degli oggetti utilizzata AWS SDKs per .NET e Rust, consulta [Elencare la versione degli oggetti in un bucket Amazon S3](https://docs.aws.amazon.com/code-library/latest/ug/s3_example_s3_ListObjectVersions_section.html).

## Utilizzo della REST API
<a name="retrieve-obj-version-rest"></a>

**Per recuperare una specifica versione di un oggetto**

1. Impostare `versionId` sull'ID versione dell'oggetto che si desidera recuperare.

1. Inviare una richiesta `GET Object versionId`.

**Example - Recupero di un oggetto con versione**  
La seguente richiesta recupera la versione `L4kqtJlcpXroDTDmpUMLUo` di `my-image.jpg`.  

```
1. GET /my-image.jpg?versionId=L4kqtJlcpXroDTDmpUMLUo 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=
```

È possibile recuperare solo i metadati di un oggetto (non il contenuto). Per informazioni, consulta [Recupero dei metadata di una versione di un oggetto](RetMetaOfObjVersion.md).

Per informazioni sul ripristino di una versione di un oggetto precedente, consulta [Ripristino di versioni precedenti](RestoringPreviousVersions.md).

# Recupero dei metadata di una versione di un oggetto
<a name="RetMetaOfObjVersion"></a>

Se si desidera recuperare solo i metadata di un oggetto (e non il suo contenuto), si utilizza l'operazione `HEAD`. Per impostazione predefinita si otterranno i metadata della versione più recente. Per recuperare i metadata di una specifica versione di oggetto si indicherà l'ID versione.

**Per recuperare i metadata di una versione di un oggetto**

1. Impostare `versionId` sull'ID versione dell'oggetto di cui si desidera recuperare i metadata.

1. Inviare una richiesta `HEAD Object versionId`.

**Example - Recupero dei metadata di un oggetto con versione**  
La richiesta seguente consente di recuperare i metadati della versione `3HL4kqCxf3vjVBH40Nrjfkd` di `my-image.jpg`.  

```
1. HEAD /my-image.jpg?versionId=3HL4kqCxf3vjVBH40Nrjfkd 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=
```

Di seguito è illustrata una risposta di esempio.

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
 3. x-amz-request-id: 318BC8BC143432E5
 4. x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
 5. Date: Wed, 28 Oct 2009 22:32:00 GMT
 6. Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
 7. ETag: "fba9dede5f27731c9771645a39863328"
 8. Content-Length: 434234
 9. Content-Type: text/plain
10. Connection: close
11. Server: AmazonS3
```

# Ripristino di versioni precedenti
<a name="RestoringPreviousVersions"></a>

Puoi utilizzare il controllo delle versioni per recuperare le versioni precedenti di un oggetto. Esistono due metodi per farlo:
+ Copiare una versione precedente dell'oggetto nello stesso bucket.

  La copia diventa la versione corrente dell'oggetto e vengono conservate tutte le sue versioni.
+ Eliminare definitivamente la versione corrente dell'oggetto.

  Così facendo, in effetti, la versione precedente diventa la versione corrente dell'oggetto.

Poiché vengono mantenute tutte le versioni dell'oggetto, è possibile trasformare una qualsiasi versione precedente nella versione corrente copiano una specifica versione dell'oggetto nello stesso bucket. Nella figura seguente l'oggetto di origine (ID = 111111) viene copiato nello stesso bucket. Amazon S3 fornisce un nuovo ID (88778877), che diventa la versione corrente dell'oggetto. In questo modo il bucket conterrà sia la versione originaria dell'oggetto (111111) che la sua copia (88778877). Per ulteriori informazioni su come ottenere una versione precedente e quindi caricarla per renderla la versione corrente, consulta [Recupero delle versioni degli oggetti da un bucket con funzione Controllo delle versioni abilitata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RetrievingObjectVersions.html) e [Caricamento di oggetti](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

![\[Illustrazione che mostra come copiare una versione specifica di un oggetto nello stesso bucket per impostarla come versione corrente.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_COPY2.png)


Una richiesta `GET` successiva recupera la versione 88778877.

La figura seguente mostra come l'eliminazione della versione corrente (121212) di un oggetto consente di lasciare la versione precedente (111111) come oggetto corrente. Per ulteriori informazioni sull'eliminazione di un oggetto, consulta [Eliminazione di un singolo oggetto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-objects.html).

![\[Illustrazione che mostra come l'eliminazione della versione corrente di un oggetto mantenga la versione precedente come l'oggetto corrente.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/versioning_COPY_delete2.png)


Una richiesta `GET` successiva recupera la versione 111111.

**Nota**  
Per ripristinare le versioni degli oggetti in batch, puoi [utilizzare l'operazione `CopyObject`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html). L'operazione `CopyObject` copia ogni oggetto specificato nel manifesto. Tuttavia tieni presente che gli oggetti non vengono necessariamente copiati nello stesso ordine in cui appaiono nel manifesto. Per i bucket con versione, se è importante mantenere l'ordine di versione corrente/non corrente, è necessario copiare prima tutte le versioni non correnti. Quindi, al termine del primo processo, copia le versioni correnti in un processo successivo.

## Come ripristinare le versioni precedenti degli oggetti
<a name="restoring-obj-version-version-enabled-bucket-examples"></a>

Per ulteriori indicazioni sul ripristino di oggetti eliminati, consulta [Come posso recuperare un oggetto Amazon S3 che è stato eliminato in un](https://repost.aws/knowledge-center/s3-undelete-configuration) bucket abilitato al rilascio di versioni? AWS re:Post nel Knowledge Center.

### Utilizzo della console S3
<a name="retrieving-object-versions"></a>

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 **Buckets (Bucket)** scegliere il nome del bucket contenente l'oggetto.

1. Nell'elenco **Oggetti** scegliere il nome dell'oggetto.

1. Scegliere le **Versioni**.

   Amazon S3 mostra tutte le versioni per l'oggetto.

1. Selezionare la casella di controllo accanto all' **ID versione** per le versioni che si desidera recuperare.

1. Scegliere **Azioni**, scegliere **Scarica**e salvare l'oggetto.

È anche possibile visualizzare, scaricare ed eliminare le versioni degli oggetti nel pannello di panoramica sull'oggetto. Per ulteriori informazioni, consulta [Visualizzazione delle proprietà di un oggetto nella console di Amazon S3](view-object-properties.md).

**Importante**  
È possibile annullare l'eliminazione di un oggetto solo se è stato eliminato come ultima versione (corrente). Non è possibile annullare l'eliminazione della versione precedente di un oggetto eliminato. Per ulteriori informazioni, consulta [Conservazione di più versioni degli oggetti con Controllo delle versioni S3](Versioning.md).

### Utilizzando il AWS SDKs
<a name="restoring-obj-version-version-enabled-bucket-sdks"></a>

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

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

Il seguente esempio di codice Python ripristina la versione precedente di un oggetto con versione eliminando tutte le versioni che si sono succedute dopo la versione di rollback specificata. 

```
def rollback_object(bucket, object_key, version_id):
    """
    Rolls back an object to an earlier version by deleting all versions that
    occurred after the specified rollback version.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket: The bucket that holds the object to roll back.
    :param object_key: The object to roll back.
    :param version_id: The version ID to roll back to.
    """
    # Versions must be sorted by last_modified date because delete markers are
    # at the end of the list even when they are interspersed in time.
    versions = sorted(
        bucket.object_versions.filter(Prefix=object_key),
        key=attrgetter("last_modified"),
        reverse=True,
    )

    logger.debug(
        "Got versions:\n%s",
        "\n".join(
            [
                f"\t{version.version_id}, last modified {version.last_modified}"
                for version in versions
            ]
        ),
    )

    if version_id in [ver.version_id for ver in versions]:
        print(f"Rolling back to version {version_id}")
        for version in versions:
            if version.version_id != version_id:
                version.delete()
                print(f"Deleted version {version.version_id}")
            else:
                break

        print(f"Active version is now {bucket.Object(object_key).version_id}")
    else:
        raise KeyError(
            f"{version_id} was not found in the list of versions for " f"{object_key}."
        )
```

------