

 **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 Amazon AWS SDK per .NET Glacier
<a name="uploading-an-archive-single-op-using-dotnet"></a>

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

**Topics**
+ [

## Caricamento di un archivio utilizzando l'API di alto livello di AWS SDK per .NET
](#uploading-an-archive-single-op-highlevel-using-dotnet)
+ [

## Caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello di AWS SDK per .NET
](#uploading-an-archive-single-op-lowlevel-using-dotnet)

## Caricamento di un archivio utilizzando l'API di alto livello di AWS SDK per .NET
<a name="uploading-an-archive-single-op-highlevel-using-dotnet"></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 file di qualsiasi dimensione. A seconda della dimensione del file, 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 .NET
<a name="upload-archive-highlevel-any-size-dotnet"></a>

L'esempio di codice C\$1 seguente carica un archivio in una vault (`examplevault`) nella regione Stati Uniti occidentali (Oregon). 

Per step-by-step istruzioni su come eseguire questo esempio, consulta. [Esecuzione di esempi di codice](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet) Devi aggiornare il codice con il nome del file che intendi caricare come indicato.

**Example**  

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
  class ArchiveUploadHighLevel
  {
    static string vaultName = "examplevault"; 
    static string archiveToUpload = "*** Provide file name (with full path) to upload ***";

    public static void Main(string[] args)
    {
       try
      {
         var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
         // Upload an archive.
         string archiveId = manager.Upload(vaultName, "upload archive test", archiveToUpload).ArchiveId;
         Console.WriteLine("Archive ID: (Copy and save this ID for use in other examples.) : {0}", archiveId);
         Console.WriteLine("To continue, press Enter"); 
         Console.ReadKey();
      }
      catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
      catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
      catch (Exception e) { Console.WriteLine(e.Message); }
      Console.WriteLine("To continue, press Enter");
      Console.ReadKey();
    }
  }
}
```

## Caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello di AWS SDK per .NET
<a name="uploading-an-archive-single-op-lowlevel-using-dotnet"></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 .NET.

 

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 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 .NET con Amazon Glacier](using-aws-sdk-for-dot-net.md). 

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

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

### Esempio: caricamento di un archivio in un'unica operazione utilizzando l'API di basso livello del AWS SDK per .NET
<a name="upload-archive-single-op-lowlevel-dotnet"></a>

L'esempio di codice C\$1 seguente illustra la procedura precedente. L'esempio utilizza AWS SDK per .NET per caricare un archivio in un vault (). `examplevault` 

**Nota**  
Per informazioni sull'utilizzo dell'API REST sottostante per caricare un archivio in un'unica richiesta, consulta [Upload Archive (POST archive)](api-archive-post.md).

Per step-by-step istruzioni su come eseguire questo esempio, vedi[Esecuzione di esempi di codice](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). Devi aggiornare il codice con il nome del file che intendi caricare come indicato.

**Example**  

```
using System;
using System.IO;
using Amazon.Glacier;
using Amazon.Glacier.Model;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
  class ArchiveUploadSingleOpLowLevel
  {
    static string vaultName       = "examplevault";
    static string archiveToUpload = "*** Provide file name (with full path) to upload ***";

    public static void Main(string[] args)
    {
      AmazonGlacierClient client;
      try
      {
         using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2))
        {
          Console.WriteLine("Uploading an archive.");
          string archiveId = UploadAnArchive(client);
          Console.WriteLine("Archive ID: {0}", archiveId);
        }
      }
      catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
      catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
      catch (Exception e) { Console.WriteLine(e.Message); }
      Console.WriteLine("To continue, press Enter");
      Console.ReadKey();
    }

    static string UploadAnArchive(AmazonGlacierClient client)
    {
      using (FileStream fileStream = new FileStream(archiveToUpload, FileMode.Open, FileAccess.Read))
      {
        string treeHash = TreeHashGenerator.CalculateTreeHash(fileStream);
        UploadArchiveRequest request = new UploadArchiveRequest()
        {
          VaultName = vaultName,
          Body = fileStream,
          Checksum = treeHash
        };
        UploadArchiveResponse response = client.UploadArchive(request);
        string archiveID = response.ArchiveId;
        return archiveID;
      }
    }
  }
}
```