Chargement d'une archive en une seule opération à l'aide d'AWS SDK for .NET dans Amazon G3 Glacier - Amazon S3 Glacier

Cette page est réservée aux clients existants du service S3 Glacier utilisant Vaults et l'original REST API de 2012.

Si vous recherchez des solutions de stockage d'archives, nous vous conseillons d'utiliser les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour en savoir plus sur ces options de stockage, consultez les sections Classes de stockage S3 Glacier et Stockage de données à long terme à l'aide des classes de stockage S3 Glacier dans le guide de l'utilisateur Amazon S3. Ces classes de stockage utilisent Amazon S3API, sont disponibles dans toutes les régions et peuvent être gérées au sein de la console Amazon S3. Ils offrent des fonctionnalités telles que l'analyse des coûts de stockage, Storage Lens, des fonctionnalités de chiffrement optionnelles avancées, etc.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chargement d'une archive en une seule opération à l'aide d'AWS SDK for .NET dans Amazon G3 Glacier

Les API de haut et bas niveau fournies par le kit SDK Amazon pour .NET proposent une méthode de chargement d'archive en une seule opération.

Chargement d'une archive à l'aide de l'API de haut niveau du kit AWS SDK for .NET

La classe ArchiveTransferManager de l'API de haut niveau fournit la méthode Upload qui permet de charger une archive dans un coffre.

Note

Vous pouvez utiliser la méthode Upload pour charger des fichiers petits ou volumineux. Selon la taille du fichier que vous chargez, cette méthode détermine si vous devez effectuer cette opération en une seule fois ou si vous devez utiliser l'API de chargement partitionné pour charger le fichier en plusieurs parties.

Exemple : Chargement d'une archive à l'aide de l'API de haut niveau du kit AWS SDK for .NET

L'exemple de code C# suivant charge une archive sur un coffre (examplevault) dans la région USA Ouest (Oregon).

Pour obtenir les instructions étape par étape permettant d'exécuter cet exemple, consultez la section Exemples de code en cours d'exécution. Vous devez mettre à jour le code tel qu'il est présenté avec le nom du fichier que vous souhaitez charger.

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(); } } }

Chargement d'une archive en une seule opération à l'aide de l'API de bas niveau du kit AWS SDK for .NET

L'API de bas niveau fournit des méthodes pour toutes les opérations d'archivage. Voici les étapes de chargement d'une archive à l'aide du kit AWS SDK for .NET.

  1. Créez une instance de la classe AmazonGlacierClient (le client).

    Vous devez spécifier la région AWS où vous souhaitez charger l'archive. Toutes les opérations que vous effectuez à l'aide de ce client s'appliquent à cette région AWS.

  2. Fournissez les informations de demande en créant une instance de la classe UploadArchiveRequest.

    Outre les données que vous souhaitez télécharger, vous devrez fournir un total de contrôle (hachage d'arborescence SHA-256) de la charge utile, le nom du coffre et votre ID de compte.

    Si vous n'indiquez pas d'ID de compte, l'ID de compte associé aux informations d'identification que vous avez indiquées pour signer la demande est pris en compte. Pour de plus amples informations, veuillez consulter Utilisation d'AWS SDK for .NET avec Amazon S3 Glacier.

  3. Exécutez la méthode UploadArchive en fournissant l'objet de demande comme paramètre.

    En réponse, S3 Glacier renvoie l'ID de l'archive qui vient d'être chargée.

Exemple : Chargement d'une archive en une seule opération à l'aide de l'API de bas niveau du kit AWS SDK for .NET

L'exemple de code C# suivant présente les étapes précédentes. L'exemple utilise le kit AWS SDK for .NET pour charger une archive dans un coffre (examplevault).

Note

Pour plus d'informations sur l'API REST sous-jacente pour charger une archive en une seule demande, consultez Chargement d'archive (POST archive).

Pour obtenir les instructions étape par étape permettant d'exécuter cet exemple, consultez la section Exemples de code en cours d'exécution. Vous devez mettre à jour le code tel qu'il est présenté avec le nom du fichier que vous souhaitez charger.

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; } } } }