Caricamento di un archivio in un'unica operazione mediante l'AWS SDK for .NET in Amazon S3 Glacier - Amazon S3 Glacier

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

Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage S3 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 S3 Glacier e lo storage dei dati a lungo termine con le classi di storage S3 Glacier nella Amazon S3 User Guide. Queste classi di storage utilizzano Amazon S3API, sono disponibili in tutte le regioni e possono essere gestite all'interno della console Amazon S3. Offrono funzionalità come Storage Cost Analysis, Storage Lens, funzionalità di crittografia opzionali avanzate e altro ancora.

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 mediante l'AWS SDK for .NET in Amazon S3 Glacier

Le API di alto e basso livello fornite da Amazon SDK per .NET forniscono un metodo per caricare un archivio con una sola operazione.

Caricamento di un archivio mediante l'API di alto livello del kit AWS SDK for .NET

La classe ArchiveTransferManager dell'API di alto livello fornisce il metodo Upload che puoi utilizzare per caricare un archivio in un 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 mediante l'API di alto livello del kit AWS SDK for .NET

L'esempio di codice C# seguente carica un archivio in un vault (examplevault) nella regione Stati Uniti occidentali (Oregon).

Per istruzioni dettagliate su come eseguire questo esempio, consulta Esecuzione di esempi di codice. Devi aggiornare il codice con il nome del file che intendi caricare come indicato.

using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.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 mediante l'API di basso livello del kit AWS SDK for .NET

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 for .NET.

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

    Devi specificare la regione AWS in cui intendi caricare l'archivio. Tutte le operazioni che esegui utilizzando questo client si applicano a quella regione AWS.

  2. 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 del 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 for .NET con Amazon S3 Glacier.

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

    In risposta, S3 Glacier restituisce l'ID archivio appena caricato.

Esempio: caricamento di un archivio in un'unica operazione mediante l'API di basso livello del kit AWS SDK for .NET

L'esempio di codice C# seguente illustra la procedura precedente. L'esempio utilizza il kit AWS SDK for .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).

Per istruzioni dettagliate su come eseguire questo esempio, consulta Esecuzione di esempi di codice. Devi aggiornare il codice con il nome del file che intendi caricare come indicato.

using System; using System.IO; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.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; } } } }