

 **Questa pagina è riservata ai clienti esistenti del servizio Amazon Glacier che utilizzano Vaults e l'API REST originale del 2012.**

Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage Amazon Glacier in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Per ulteriori informazioni su queste opzioni di storage, consulta le classi di storage di [Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/).

Amazon Glacier (servizio autonomo originale basato su vault) non accetta più nuovi clienti. Amazon Glacier è un servizio APIs autonomo che archivia i dati in vault ed è distinto dalle classi di storage Amazon S3 e Amazon S3 Glacier. I dati esistenti rimarranno sicuri e accessibili in Amazon Glacier a tempo indeterminato. Non è richiesta alcuna migrazione. Per uno storage di archiviazione a lungo termine a basso costo, AWS consiglia le classi di storage [Amazon S3 Glacier](https://aws.amazon.com/s3/storage-classes/glacier/), che offrono un'esperienza cliente superiore con disponibilità Regione AWS completa, costi inferiori e integrazione dei servizi APIs basata su bucket S3. AWS Se desideri funzionalità avanzate, prendi in considerazione la migrazione alle classi di storage Amazon S3 Glacier utilizzando la [AWS nostra Solutions Guidance per il trasferimento di dati dai vault Amazon Glacier alle classi di storage Amazon S3 Glacier](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/).

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

# Caricamento di un archivio in un'unica operazione utilizzando AWS SDK per Java
<a name="uploading-an-archive-single-op-using-java"></a>

Sia il [livello alto che quello di basso livello APIs](using-aws-sdk.md) forniti da Amazon SDK for Java forniscono un metodo per caricare un archivio.

**Topics**
+ [Caricamento di un archivio utilizzando l'API di alto livello di AWS SDK per Java](#uploading-an-archive-single-op-high-level-using-java)
+ [Caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello di AWS SDK per Java](#uploading-an-archive-single-op-low-level-using-java)

## Caricamento di un archivio utilizzando l'API di alto livello di AWS SDK per Java
<a name="uploading-an-archive-single-op-high-level-using-java"></a>

La classe `ArchiveTransferManager` dell'API di alto livello fornisce il metodo `upload` che puoi utilizzare per caricare un archivio in una vault.

 

**Nota**  
Il metodo `upload` ti consente di caricare archivi di qualsiasi dimensione. A seconda della dimensione dell'archivio, determina se questo deve essere caricato in un'unica operazione oppure mediante un caricamento in più parti con l'API corrispondente.

### Esempio: caricamento di un archivio utilizzando l'API di alto livello di AWS SDK per Java
<a name="upload-archive-high-level-java-example"></a>

L'esempio di codice Java seguente carica un archivio in una vault (`examplevault`) nella regione Stati Uniti occidentali (Oregon) (`us-west-2`). Per un elenco delle AWS regioni e degli endpoint supportati, consulta. [Accesso ad Amazon Glacier](amazon-glacier-accessing.md) 

Per step-by-step istruzioni su come eseguire questo esempio, consulta[Esecuzione di esempi Java per Amazon Glacier con Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). Devi aggiornare il codice con il nome della vault in cui intendi effettuare il caricamento e il nome del file da caricare come indicato.

**Example**  

```
import java.io.File;
import java.io.IOException;
import java.util.Date;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.glacier.transfer.UploadResult;


public class ArchiveUploadHighLevel {
    public static String vaultName = "*** provide vault name ***";
    public static String archiveToUpload = "*** provide name of file to upload ***";
    
    public static AmazonGlacierClient client;
    
    public static void main(String[] args) throws IOException {
        
        
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();
    	
        client = new AmazonGlacierClient(credentials);
        client.setEndpoint("https://glacier.us-west-2.amazonaws.com/");

        try {
            ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials);
            
            UploadResult result = atm.upload(vaultName, "my archive " + (new Date()), new File(archiveToUpload));
            System.out.println("Archive ID: " + result.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println(e);
        }
    }
}
```

## Caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello di AWS SDK per Java
<a name="uploading-an-archive-single-op-low-level-using-java"></a>

L'interfaccia API di basso livello fornisce metodi per tutte le operazioni di archivio. Di seguito è riportata la procedura per caricare un archivio mediante il kit AWS SDK per Java.

 

1. Crea un'istanza della classe `AmazonGlacierClient` (client). 

   È necessario specificare una AWS regione in cui si desidera caricare l'archivio. Tutte le operazioni eseguite utilizzando questo client si applicano a quella AWS regione. 

1. Fornisci informazioni sulla richiesta creando un'istanza della classe `UploadArchiveRequest`.

   Oltre ai dati da caricare, devi fornire un checksum (struttura hash SHA-256) del payload, il nome della vault, la lunghezza del contenuto dei dati e l'ID del tuo account. 

   Se non specifichi un ID account, viene utilizzato l'ID account associato alle credenziali che hai fornito per firmare la richiesta. Per ulteriori informazioni, consulta [Utilizzo di AWS SDK per Java con Amazon Glacier](using-aws-sdk-for-java.md). 

1. Eseguire il metodo `uploadArchive` fornendo l'oggetto della richiesta come parametro. 

   In risposta, Amazon Glacier (Amazon Glacier) restituisce un ID di archivio dell'archivio appena caricato. 

Il seguente frammento di codice Java illustra la procedura precedente. 

```
AmazonGlacierClient client;

UploadArchiveRequest request = new UploadArchiveRequest()
    .withVaultName("*** provide vault name ***")
    .withChecksum(checksum)
    .withBody(new ByteArrayInputStream(body))
    .withContentLength((long)body.length);

UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);

System.out.println("Location (includes ArchiveID): " + uploadArchiveResult.getLocation());
```

### Esempio: caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello del AWS SDK per Java
<a name="uploding-single-archive-using-java-example"></a>

Il seguente esempio di codice Java utilizza il AWS SDK per Java per caricare un archivio in un vault (). `examplevault` Per step-by-step istruzioni su come eseguire questo esempio, vedere[Esecuzione di esempi Java per Amazon Glacier con Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). Devi aggiornare il codice con il nome della vault in cui intendi effettuare il caricamento e il nome del file da caricare come indicato.

```
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.TreeHashGenerator;
import com.amazonaws.services.glacier.model.UploadArchiveRequest;
import com.amazonaws.services.glacier.model.UploadArchiveResult;
public class ArchiveUploadLowLevel {

    public static String vaultName = "*** provide vault name ****";
    public static String archiveFilePath = "*** provide to file upload ****";
    public static AmazonGlacierClient client;
    
    public static void main(String[] args) throws IOException {
    	
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();

        client = new AmazonGlacierClient(credentials);
        client.setEndpoint("https://glacier.us-east-1.amazonaws.com/");

        try {
            // First open file and read.
            File file = new File(archiveFilePath);
            InputStream is = new FileInputStream(file); 
            byte[] body = new byte[(int) file.length()];
            is.read(body);
                                    
            // Send request.
            UploadArchiveRequest request = new UploadArchiveRequest()
                .withVaultName(vaultName)
                .withChecksum(TreeHashGenerator.calculateTreeHash(new File(archiveFilePath))) 
                .withBody(new ByteArrayInputStream(body))
                .withContentLength((long)body.length);
            
            UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);
            
            System.out.println("ArchiveID: " + uploadArchiveResult.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println("Archive not uploaded.");
            System.err.println(e);
        }
    }
}
```