Téléchargement d'une archive à partir d'un coffre dans S3 Glacier à l'aide d'AWS SDK for .NET - 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.

Téléchargement d'une archive à partir d'un coffre dans S3 Glacier à l'aide d'AWS SDK for .NET

L'exemple de code C# suivant utilise l'API de haut niveau d'AWS SDK for .NET pour télécharger l'archive que vous avez chargée précédemment à l'étape Chargement d'une archive sur un coffre dans S3 Glacier à l'aide d'AWS SDK for .NET. Dans l'exemple de code, notez les éléments suivants :

  • L'exemple crée une instance de la classe ArchiveTransferManager pour le point de terminaison de la région Amazon S3 Glacier spécifiée.

  • L'exemple de code utilise la région USA Ouest (Oregon) (us-west-2) qui correspond à l'emplacement du coffre créé précédemment à l'Étape 2 : Créer un coffre dans S3 Glacier.

  • L'exemple utilise l'opération d'API Download de la classe ArchiveTransferManager pour télécharger votre archive. L'exemple crée une rubrique Amazon Simple Notification Service (Amazon SNS) et une file d'attente Amazon Simple Queue Service (Amazon SQS) qui est abonnée à cette rubrique. Si vous avez créé un utilisateur administrateur AWS Identity and Access Management (IAM) comme indiqué à l'Étape 1 : Avant de commencer avec S3 Glacier, l'utilisateur dispose des autorisations IAM nécessaires pour créer et utiliser la rubrique Amazon SNS et la file d'attente Amazon SQS.

  • L'exemple lance ensuite la tâche d'extraction d'archive et interroge la file d'attente pour que l'archive soit disponible. Le téléchargement commence dès que l'archive est disponible. Pour plus d'informations sur les délais d'extraction, consultez Options de récupération des archives.

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 l'ID d'archive du fichier que vous avez chargé à l'Étape 3 : Charger une archive sur un coffre dans S3 Glacier.

Exemple – Téléchargement d'une archive à l'aide de l'API de haut niveau d'AWS SDK for .NET
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class ArchiveDownloadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveId = "*** Provide archive ID ***"; static string downloadFilePath = "*** Provide the file name and path to where to store the download ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); var options = new DownloadOptions(); options.StreamTransferProgress += ArchiveDownloadHighLevel_GettingStarted.progress; // Download an archive. Console.WriteLine("Intiating the archive retrieval job and then polling SQS queue for the archive to be available."); Console.WriteLine("Once the archive is available, downloading will begin."); manager.Download(vaultName, archiveId, downloadFilePath, options); 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(); } static int currentPercentage = -1; static void progress(object sender, StreamTransferProgressArgs args) { if (args.PercentDone != currentPercentage) { currentPercentage = args.PercentDone; Console.WriteLine("Downloaded {0}%", args.PercentDone); } } } }